企业网站定制开发使用nginx进行负载均衡

1. 企业网站定制开发负载均衡介绍

nginx企业网站定制开发应用场景之一就是。企业网站定制开发在访问量较多的时候,企业网站定制开发可以通过负载均衡,企业网站定制开发将多个请求分摊到多台服务器上,企业网站定制开发相当于把一台服务器需企业网站定制开发要承担的负载量交给多企业网站定制开发台服务器处理,进而提高系统的吞吐率;另外如果其中某一台服务器挂掉,其他服务器还可以正常提供服务,以此来提高系统的可伸缩性与可靠性。

下图为负载均衡示例图,当用户请求发送后,首先发送到负载均衡服务器,而后由负载均衡服务器根据配置规则将请求转发到不同的web服务器上。

2. nginx负载均衡策略

以下截图为nginx官网文档

nginx内置负载均衡策略主要分为三大类,分别是轮询、最少连接和ip hash

  • 最少连接

    请求分配给活动连接数最少的服务器,哪台服务器连接数最少,则把请求交给哪台服务器,由nginx统计服务器连接数

  • ip hash

    基于客户端ip的分配方式

2.1 轮询

以循环方式分发对应用服务器的请求,将请求平均分发到每台服务器上。

2.1.1 普通轮询方式

该方式是默认方式,轮询适合服务器配置相当,无状态且短平快的服务使用。另外在轮询中,如果服务器挂掉,会自动剔除该服务器。

http {    # 定义转发分配规则    upstream myapp1 {        server srv1.com; # 要转发到的服务器,如ip、ip:端口号、域名、域名:端口号        server srv2.com:8088;        server 192.168.0.100:8088;    }    server {        listen 80; # nginx监听的端口        location / {        	# 使用myapp1分配规则,即刚自定义添加的upstream节点        	# 将所有请求转发到myapp1服务器组中配置的某一台服务器上            proxy_pass http://myapp1;         }    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

2.1.2 权重轮询方式

如果在 upstream 中配置的server参数后追加 weight 配置,则会根据配置的权重进行请求分发。此策略可以与least_conn和ip_hash结合使用,适合服务器的硬件配置差别比较大的情况。

# 定义转发分配规则upstream myapp1 {	server srv1.com weight=1; # 该台服务器接受1/6的请求量	server srv2.com:8088 weight=2; # 该台服务器接受2/6的请求量	server 192.168.0.100:8088 weight=3; # 该台服务器接受3/6的请求量;}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2.2 最少连接

轮询算法是把请求平均的转发给各个后端,使它们的负载大致相同;但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果,适合请求处理时间长短不一造成服务器过载的情况。

# 定义转发分配规则upstream myapp1 {	least_conn; # 把请求分派给连接数最少的服务器	server srv1.com;	server srv2.com:8088;	server 192.168.0.100:8088;}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2.3 ip hash

这个方法确保了相同的客户端的请求一直发送到相同的服务器,这样每个访客都固定访问一个后端服务器。如用户需要分片上传文件到服务器下,然后再由服务器将分片合并,这时如果用户的请求到达了不同的服务器,那么分片将存储于不同的服务器目录中,导致无法将分片合并,该场景则需要使用ip hash策略。

需要注意的是,ip_hash不能与backup同时使用,另外当有服务器需要剔除,必须手动down掉,此模式适合有状态服务,比如session。

# 定义转发分配规则upstream myapp1 {	ip_hash; # #保证每个请求固定访问一个后端服务器	server srv1.com;	server srv2.com:8088;	server 192.168.0.100:8088;}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3. nginx负载均衡搭建示例

该示例使用一台nginx作为负载均衡服务器,两台tomcat作为web服务器;可以把三个服务均在一台机器进行搭建,也可以使用虚拟机虚拟三台机器,然后进行测试。教程这里就只在一台机器进行搭建,采用默认的权重方式进行配置。

3.1 tomcat配置

将两台tomcat解压出来,配置完毕相应的端口,然后在webapps目录下创建test目录,然后在test目录中创建index.html文件,随便写入一些内容,两台tomcat中test目录下的index.html文件内容要区分开来,例如写入1111111 / 222222222,如下图所示。

3.2 nginx配置

首先进行nginx的安装,安装教程可以参考

https://blog.csdn.net/guo_ridgepole/article/details/124438127

安装完毕后,进入nginx目录下的conf目录,编辑 nginx.conf 文件,修改内容为在http节点下增加

upstream tomcat { # 该部分内容与 server 节点同级	server tomcat服务的ip:tomcat服务的端口号;	server tomcat服务的ip:tomcat服务的端口号;}
  • 1
  • 2
  • 3
  • 4

server节点下的location /节点中,把默认的

location / {	root   html;	index  index.html index.htm;}
  • 1
  • 2
  • 3
  • 4

修改为

location / {	proxy_pass http://tomcat;}
  • 1
  • 2
  • 3

然后启动 两台tomcat与nginx服务,在浏览器输入nginx服务的地址:端口,不停刷新页面,就可以看到每次请求的服务器发生了改变。

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发