详解:502 Bad Gateway nginx/xxx

简介: 我们访问网站时,偶尔可能会遇到这样的错误:502 Bad Gateway nginx/xxx刷新一次或多次就好了。这是什么原因呢?最近使用nginx的代理、负载均衡功能发现了这问题的根本原因。什么原因?就是后端的服务挂了!示例配置一: server{ listen 80; resolver 8.

我们访问网站时,偶尔可能会遇到这样的错误:502 Bad Gateway nginx/xxx

刷新一次或多次就好了。这是什么原因呢?

最近使用nginx的代理、负载均衡功能发现了这问题的根本原因。

什么原因?就是后端的服务挂了!

示例配置一:

    server{
        listen 80;
        resolver 8.8.8.8;

        #server_name localhost;
        location / {
                proxy_pass   http://192.168.1.210:80809$request_uri;
                proxy_set_header Host $http_host;
                #proxy_buffers   256 4k;
                #proxy_max_temp_file_size  0k;

                proxy_redirect off;
                proxy_http_version 1.1;
                proxy_set_header X-Real-IP $remote_addr;
                #proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;
                #proxy_set_header Upgrade $http_upgrade;
                #proxy_set_header Connection "upgrade";
        }
    }
这种情况如果后端的服务挂了,那你怎么刷都 是没有用的,除非后端的服务恢复了。

示例配置二:

    upstream backtomcat { 
        server 192.168.1.210:7080; 
        server 192.168.1.211:8980; 
	server 192.168.1.212:8980;
	server 192.168.1.213:8980;
    }
    server{
		listen 80;
		resolver 8.8.8.8;

		#server_name localhost;
		location / {
			proxy_pass   http://backtomcat$request_uri;
			proxy_set_header Host $http_host;
			#proxy_buffers   256 4k;
			#proxy_max_temp_file_size  0k;

			proxy_redirect off;
			proxy_http_version 1.1;
			proxy_set_header X-Real-IP $remote_addr;
        }
    }
这种情况就是使用了负载均衡,后端有N+1台服务器,你每次访问时虽然页面是一样的,但访问的后端服务器可能不 是一个,这种情况通过刷新是可以解决问题的。

当然,这两种情况都只是Nginx的简单配置应用,没有判断后端是否可用,如果添加的判断后端是否可用的配置,是根本看不到这个错误的。

===========文档信息============ 
版权声明:非商用自由转载-保持署名-注明出处 
署名(BY) :testcs_dn(微wx笑) 
文章出处:[无知人生,记录点滴](http://blog.csdn.net/testcs_dn)

目录
相关文章
|
3月前
|
前端开发 应用服务中间件 API
比Nginx更好用的Gateway!
比Nginx更好用的Gateway!
55 1
比Nginx更好用的Gateway!
|
4月前
|
应用服务中间件 nginx
nginx 504 Gateway Time-out
nginx 504 Gateway Time-out
111 0
|
6月前
|
缓存 JavaScript 应用服务中间件
Spartacus 部署到 CCV2 上造成 Nginx 返回 504 Gateway Timeout 错误的一个原因
Spartacus 部署到 CCV2 上造成 Nginx 返回 504 Gateway Timeout 错误的一个原因
39 0
|
4月前
|
负载均衡 Java 应用服务中间件
一文速通Nginx网关与gateway网关区分
一文速通Nginx网关与gateway网关区分
|
5月前
|
前端开发 应用服务中间件 nginx
用docker和nginx部署前端项目访问本地java网关gateway服务
本地开发 java 微服务项目,但是拿到的对应的web前端项目只有打包编译过后的 dist 目录里的静态资源(里面只有一个index.html和一些编译过后的 js、css文件),前端接口需要先访问到 java 的网关服务,然后网关里再做转发
192 1
|
9月前
|
JavaScript 前端开发 应用服务中间件
解决504 GATEWAY TIMEOUT Nginx网关超时
解决504 GATEWAY TIMEOUT Nginx网关超时
951 0
|
11月前
|
负载均衡 Java 应用服务中间件
【JavaP6大纲】SpringCould篇:网关Zuul、Gateway、nginx的区别
【JavaP6大纲】SpringCould篇:网关Zuul、Gateway、nginx的区别
163 0
|
17天前
|
负载均衡 Nacos 数据安全/隐私保护
SpringCloud GateWay 使用
SpringCloud GateWay 使用
22 0
|
1月前
|
缓存 Java API
【云原生】Spring Cloud Gateway的底层原理与实践方法探究
【云原生】Spring Cloud Gateway的底层原理与实践方法探究
|
2月前
|
监控 Java 应用服务中间件
网关大解密:探索Spring Cloud Alibaba中Gateway的奥秘
网关大解密:探索Spring Cloud Alibaba中Gateway的奥秘
111 1