nginx配置代理、页面跳转

  • Post author:
  • Post category:其他


一、Nginx配置代理,是指向到另外一个服务器,但是URL地址不变。

 server {
        listen       8080;
        server_name  localhost;
        
		location /appcenter-main {
			#代理地址
			proxy_pass   http://localhost:8081/appcenter-main;
			#代理连接时间
			proxy_connect_timeout 2;
			#代理读取时间
			proxy_read_timeout 3;
			#代理发送时间
			proxy_send_timeout 15;
        }
 }

二、Nginx配置页面跳转,是指向到另外一个服务器,但是URL地址也跟着变化。

server {
        listen       8080;
        server_name  localhost;
        
		location /appcenter-main {
			#proxy_next_upstream实现容灾和重复处理问题,
			proxy_next_upstream http_502 http_504 error timeout invalid_header;
			#不改变请求头的信息
        	proxy_set_header Host  $host;
        	#捕获客户端真实IP
        	proxy_set_header X-Real-IP $remote_addr;
        	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        	#代理地址
        	proxy_pass http://localhost:8081/appcenter-main;
        	#缓存时间1天
        	expires      1d;
        	#地址重定向
        	rewrite  ^/(.*)$  http://localhost:8081/appcenter-main permanent;
        }
}

proxy_next_upstream 参数如下:

error 意思是和后端服务器建立连接时,或者向后端服务器发送请求时,或者从后端服务器接收响应头时,将请求发送给下一台后端服务器

timeout 意思是和后端服务器建立连接时,或者向后端服务器发送请求时,或者从后端服务器接收响应头时,将请求发送给下一台后端服务器

invalid_header 意思是后端服务器返回空响应或者非法响应头,将请求发送给下一台后端服务器

http_500 意思是后端服务器返回的响应状态码为500,将请求发送给下一台后端服务器

http_502 意思是后端服务器返回的响应状态码为502,将请求发送给下一台后端服务器

http_503 意思是后端服务器返回的响应状态码为503,将请求发送给下一台后端服务器

http_504 意思是后端服务器返回的响应状态码为504,将请求发送给下一台后端服务器

http_404 意思是后端服务器返回的响应状态码为404,将请求发送给下一台后端服务器

off 意思是停止将请求发送给下一台后端服务器


注:

出现如下场景就需要把proxy_next_upstream这个设置为 proxy_next_upstream off。

业务场景:当访问充值服务时,充值服务返回error timeout时,访问会继续分配到下一台服务器处理,就等于一个请求分发到多台服务器,就可能出现多次处理的情况,就有可能充值多次的情况,这种情况下就要把proxy_next_upstream关掉



版权声明:本文为qq_38711927原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。