LNMP下访问
Laravel
项目提示
502
:
bad
gateway
的处置
有时,就算我在
nginx
的设置内都将root文件夹设置到
laravel
项目的pulic文件夹下。仍然无法通过
nginx
访问项目。提示都是
502
Bad
Gateway
nginx
/1.4.6 (Ubuntu)
php artisan serve
则可以通过localhost:8000访问。
猜测是
nginx
设置的问题
然而查看 /etc/
nginx
/site-available/default后并无发现。
根据文章ht
今天一个接口
502
,不理解一个逻辑很简单的接口怎么会失败。因为我们的的架构是ofe+
nginx
+php,熟悉这个架构的人都知道,
502
错误
码通常是php-fpm对应的fastcgi进程处理不过来请求导致的。
502
状态码也叫
网关
错误
,通常是因为并发请求高超过php-fpm处理能力,导致
nginx
没有从upstream收到正确的返回结果。
nginx
从上面的图中可以看到,upstream_time超过了5s,而正常的请求只需要10ms左右。乍一看像是超时,因为
nginx
.conf里面配置的fa..
我让按照以下两个步骤去解决,最后在第2步中将FastCGI的timeout时间增加为300,问题解决: PS:比较羡慕迅雷的Web服务器,16G内存。 1、查看当前的PHP FastCGI进程数是否够用: netstat -anpo | grep “php-cgi” | wc -l 如果实际使用的“FastCGI进程数”接近预设的“FastCGI进程数”,那么,说明“FastCGI进程数”不够用,需要增大。 2、部分PHP程序的执行时间超过了
Nginx
的等待时间,可以适当增加
nginx
.conf配置文件中FastCGI的timeout时间,例如: 代码如下: …… http
很是郁闷,Apache环境中
Laravel
5.4 开启APP_DEBUG后没有任何问题,但是到了
Nginx
环境中,竟然出现Ajax calls
502
bad
gateway
。
这种奇葩问题,百度肯定不会有结果,一番排查后,发现是
Nginx
的问题而不是PHP的问题,所以只需要在
Nginx
配置中添加
fastcgi_temp_file_write_size 10m;
fastcgi_busy_buffers_size 512k;
fastcgi_buffer_size 512k;
fastcgi_buffer
502
Bad
Gateway
是一个HTTP状态码,表示服务器作为
网关
或代理,从上游服务器接收到无效的响应。在这种情况下,上游服务器不能提供有效的响应给客户端,导致
502
Bad
Gateway
错误
。
nginx
是一个开源的高性能的HTTP和反向代理服务器。它常常用作代理服务器来转发并处理客户端请求。当
nginx
作为代理服务器时,如果它无法从上游服务器获得有效的响应,就会返回
502
Bad
Gateway
错误
给客户端。
解决
502
Bad
Gateway
错误
的方法很多,其中一种常见的方式是增加
nginx
的缓冲区大小。这可以通过调整
nginx
的配置文件来实现。增加缓冲区的大小可以确保
nginx
能够正确处理从上游服务器返回的大型响应头,从而解决
502
Bad
Gateway
错误
。
除了增加缓冲区大小,还有其他一些解决
502
Bad
Gateway
错误
的方法,例如检查上游服务器是否正常工作、重启
nginx
服务器、检查网络连接等。根据具体情况选择合适的解决方法。