Nginx 反向代理/负载均衡服务器的配置及常见的问题

Nginx 反向代理/负载均衡服务器的配置及常见的问题

1. CMD命令

注意:一定要在Nginx服务器的根目录下执行下面的命令

//nginx服务器启动命令,该命令启动时不会报错,一般执行完启动命令之后要执行一次重启命令
start nginx
//nginx重启命令,如果nginx配置有问题该命令会报错
nginx -s reload
//nginx关闭命令
nginx -s stop

2.Nginx的配置

2.0 hosts文件的修改

原因:由于没有域名,所以需需要使用本机的IP(127.0.0.1)来映射域名
hosts文件的路径:C:\Windows\System32\drivers\etc\hosts

说明: 在hosts文件目录中 添加前后端域名控制.

127.0.0.1       localhost
::1             localhost
#图片服务器域名
127.0.0.1       image.jt.com
#前端域名地址
127.0.0.1       web.jt.com
#后端域名地址
127.0.0.1       manage.jt.com

2.1配置文件的位置

路径:\nginx-1.21.1\conf\nginx.conf

2.1配置文件的信息

默认的基本配置
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
	#每个反向代理的服务都是一个server
    server {
    
    	#listen表示监听的端口号,一般默认都是80
        listen       80;
        
		#拦截用户访问的路径
        server_name  localhost;
        
		#反向代理的具体配置项  "/"表示拦截所有请求 "/..." 表示拦截...的请求
        location / {
        
        	#root表示反向代理  代表的是一个目录结构  相对路径
            root   html;
            
        	#index关键字  默认的欢迎页面
            index  index.html index.htm;
        }
	}
图片服务器的配置
#配置图片的反射代理
	server {
    	#listen表示监听的端口号,一般默认都是80
        listen       80;
        #拦截用户访问的路径,也就是域名
        server_name  image.jt.com;

		#反向代理的具体配置项  "/"表示拦截所有请求 "/..." 表示拦截...的请求
        location / {
        	#root表示反向代理  代表的是一个目录结构
            root   E:\DaNei\ThreeStages\jt\images;
        }
	}
前端服务器的配置

前提:将VUE打包的文件–dist文件,复制到 Nginx 的根目录下
Nginx 反向代理/负载均衡服务器的配置及常见的问题_第1张图片

#配置前端服务器
	server {
    	#listen表示监听的端口号,一般默认都是80
        listen       80;
        #拦截用户访问的路径
        server_name  web.jt.com;

		#反向代理的具体配置项  "/"表示拦截所有请求 "/..." 表示拦截...的请求
        location / {
            root   dist;
            index  index.html;
        }
	}
后端服务器配置
#配置后端服务器
	server {
    	#listen表示监听的端口号,一般默认都是80
        listen       80;
        #拦截用户访问的路径
        server_name  manage.jt.com;

		#反向代理的具体配置项  "/"表示拦截所有请求 "/..." 表示拦截...的请求
        location / {
            #代理的是一个请求的网址  一旦拦截到manage.jt.com服务器的时候,就将请求转发给http://localhost:8091
            proxy_pass http://localhost:8091;   
        }
	}
项目部署流程图

Nginx 反向代理/负载均衡服务器的配置及常见的问题_第2张图片

集群部署(Nginx 负载均衡机制)

产生原因:在一个项目流程中,由于中间的Nginxuu服务器的处理效率过高(2-3万次/秒),后端服务器tomcat的处理速率较慢,会产生用户请求的等待,所以就产生了集群的概念

处理机制:一个集群相当于一个很大的后端服务器,而这个服务器中又包含了若干个tomcat服务器,这些tomcat服务器共同处理Nginx发来的请求。
Nginx 反向代理/负载均衡服务器的配置及常见的问题_第3张图片

Nginx 负载均衡机制
需求说明

要求用户通过http://manage.jt.com 访问8091/8092服务器. 并且实现负载均衡的效果.

轮询机制

规则说明: 根据配置文件的顺序依次访问.

#准备集群
	#轮询机制
	upstream tomcats {
		server 127.0.0.1:8091;
		server 127.0.0.1:8092;
	}
	
	
	#配置后端服务器.
	server {
		listen 80;
		server_name manage.jt.com;
		location / {
			#代理的是一个请求网址
			#proxy_pass  http://localhost:8091;
			proxy_pass  http://tomcats;
		}
	}
权重机制

关键字: weight= 阿拉伯数字
规则说明: 根据服务器性能实现动态的分配.

#准备集群
	#轮询机制
	upstream tomcats {
	//8091:8092=9:1
		server 127.0.0.1:8091 weight= 9;
		server 127.0.0.1:8092 weight= 1;
	}
	
	
	#配置后端服务器.
	server {
		listen 80;
		server_name manage.jt.com;
		location / {
			#代理的是一个请求网址
			#proxy_pass  http://localhost:8091;
			proxy_pass  http://tomcats;
		}
	}
IPHASH策略

规则: 如果需要用户与服务器进行绑定 则采用IPHASH方式.
IPHASH算法:hash(IP地址:端口号)%(集群中tomcat服务器的数量)
Nginx 反向代理/负载均衡服务器的配置及常见的问题_第4张图片

#准备集群
	#轮询机制
	upstream tomcats {
	//8091:8092=9:1
		ip_hash;
		server 127.0.0.1:8091;
		server 127.0.0.1:8092;
	}
	
	
	#配置后端服务器.
	server {
		listen 80;
		server_name manage.jt.com;
		location / {
			#代理的是一个请求网址
			#proxy_pass  http://localhost:8091;
			proxy_pass  http://tomcats;
		}
	}
Nginx实现Tomcat服务器的高可用
高可用(HA)说明

说明:如果发现服务器宕机,则程序可以自动化的实现故障的迁移.无需人为干预.

Nginx策略

根据配置文件的顺序,依次访问服务器.如果访问的服务器超时,则自动的切换下一台服务器.
弊端: 如果宕机的服务器不做配置,则会频繁的访问故障机. 默认规则

Nginx常用属性

down属性 如果该属性标识服务器,则nginx永远不会访问该设备.
backup属性 设定备用机 正常情况下 该设备不提供服务. 如果其他的设备宕机/遇忙时 才会访问备用机

需求: 在不影响用户使用的条件下 如何将项目升级!!!

步骤:

  1. 将需要升级的服务器 在nginx中标识为down属性.
  2. 重启nginx服务器
  3. 将新的jar包文件部署到服务器中.
  4. 进行软件调试. 如果测试无误.修改nginx down属性进行切换.
Nginx 高可用实现方案

说明: 如果服务器宕机 通过down属性进行标识,则需要人为的干预,这样的方式效率低. 最好的方式由程序自动完成.

属性说明:
  1. max_fails=1 设定访问失败的最大次数
  2. fail_timeout=60s; 设定失败的超时时间,在超时时间范围内不会再次访问故障机.
	upstream tomcats {
		#ip_hash;
		server 127.0.0.1:8091 max_fails=1 fail_timeout=60s;
		server 127.0.0.1:8092 max_fails=1 fail_timeout=60s;
	}

你可能感兴趣的:(java,nginx反向代理)