最近申请了阿里云免费的SSL证书,让网站实现https://的方式访问,按照阿里云的教程设置后,网站出现了502 Bad Gateway nginx/1.8.1,导致网站无法访问。
环境:
[wm_red]云服务器镜像 Linux CentOS 7.6
已经安装并成功配置 SSL 的 nginx 1.8.1
遇到的问题: 在服务器没有报错的情况下, 向服务器发送 HTTPS 请求时出现 502 Bad Gateway[/wm_red]
经过Google搜索后,我通过增加http块内的缓冲区和超时,在Nginx配置文件/etc/nginx/nginx.conf中添加几行代码解决了该问题。
下面了解一下如何修复Nginx 502 Bad Gateway 的错误。
很多时候,我们可以浏览网络,并在Nginx上发现502 bad gateway错误。您会在网络服务器日志中找到此消息的原因有多种,这里将教您如何修复它。
不同的网站可能会有不同的502 bad gateway错误消息。以下是最常见的502错误消息:
502 Bad Gateway 502 Bad Gateway NGINX 502 Service Temporarily Overloaded 502 Proxy Error Error 502 HTTP Error 502 – Bad Gateway HTTP 502
什么时候会发生502 Bad Gateway错误
Nginx作为Apache Web服务器的代理运行。
Nginx与PHP-FPM守护程序一起运行。
Nginx与其他服务一起运行作为网关。
缓冲/超时配置错误。
在深入研究所有这些选项之前,您必须了解502 Bad Gateway错误消息的含义。因此,该错误是HTTP状态代码错误,它发生在网关上。到底是什么网关?简而言之,网关就像一个访问点,是一个服务与另一个服务进行通信的桥梁,在这种情况下,网关可以是正在工作并从Nginx Web服务器接收请求的服务/应用程序。
现在,让我们探究每种原因,以了解502 Bad Gateway错误消息
Nginx作为Apache的代理:在这种情况下,网关是Apache。当您使用Nginx作为Apache的代理时,如果apache死了或配置不正确,则可能导致此502 Bad Gateway错误。如何解决?在大多数情况下,重新启动apache Web服务器将消除这种情况,但是您必须检查日志文件以了解到底是什么原因造成的。
带有PHP-FPM的Nginx:与Apache示例相同,假设您的php守护程序停止工作,或者由于请求而过载,它将无法正常工作,并且无法满足nginx的所有php请求,因此,出现502 Bad Gateway错误会出现。如何解决?重新启动php-fpm守护程序并检查日志。
Nginx与其他服务/应用程序:尝试重新启动nginx背后的其他服务,并浏览日志以查找发生该事件的原因。
502 Bad Gateway错误的其他快速解决方案:
1)增加http块内的缓冲区和超时:
http { ... fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; ... }
2)确保您的php-fpm服务正在根据您在nginx中配置的内容进行监听,这可以是以下两个选项之一:
编辑www.conf
文件(在CentOS中,它位于/etc/php-fpm.d/www.conf
并尝试使用以下两个选项之一:
listen = /var/run/php5-fpm.sock
要么
listen = 127.0.0.1:9000
之后,只需重新启动php-fpm服务即可。
3)如果使用Apc Cache,则禁用它,而改用Xcache,在特定环境下apc会引起此类问题,从而导致分段错误。
本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有。若您需要使用非免费的软件或服务,请购买正版授权并合法使用。本站发布的内容若侵犯到您的权益,请联系站长删除,我们将及时处理。