首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >502坏网关

502坏网关
EN

Stack Overflow用户
提问于 2016-08-27 20:05:26
回答 1查看 5.2K关注 0票数 1

我经常遇到这样的问题,如果我转到服务器上使用php的页面,就会出现"502坏网关“错误。

错误日志:

/var/log/nginx/error.log每分钟显示大约3次此错误:

代码语言:javascript
复制
2016/08/27 15:07:22 [error] 17309#0: *53554 connect() to unix:/var/run/php5-fpm.sock 
failed (11: Resource temporarily unavailable) while connecting to upstream, client: 
[dedicated server], server: localhost, request: "POST /xmlrpc.php HTTP/1.0", 
upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: [my IP address]

来自nginxphp5-fpm进程的CPU负载有时很大(超过100%),但有时只是明显的(2%),很少是微不足道的。

下面是我在syslog (!)中看到的很多东西:

代码语言:javascript
复制
Aug 27 15:17:21 [site] avahi-daemon[871]: Invalid response packet from host 
[some IP address that isn't mine and nslookup never heard of].

到目前为止我尝试过的事物:

  • apt-get update
  • 删除并重新安装php5php5-cgiphp5-fpm
  • 确保apache2不在我的系统上运行
  • 已添加 to nginx.confhttp { . }fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300;
  • 确保运行nginx的同一个用户拥有/var/run/php5-fpm.sock。这是listen.ownerlisten.group/etc/php5/fpm/pool.d/www.conf中引用的同一个所有者。
  • 尝试将对该套接字的引用更改为TCP/IP套接字: /etc/nginx/sites-available/default,包含包含行listen = 127.0.0.1:9000;的行fastcgi_pass unix:127.0.0.1:9000; /etc/php5/fpm/pool.d/www.conf 因为这使得php页面都无法工作,所以我恢复了这个更改。
  • 确保我不会在我的nginx.conf设置中禁用PHP文件。我不是,有时候很管用,所以不可能是这样。

php5-fpm安装程序:

我怀疑这是php5占用内存或CPU时间的问题,因为(a)它经常这样做,(b)如果我没有得到504错误,那么在使用php的任何页面上加载时间都会非常慢。下面是我认为/etc/php5/fpm/pool.d/www.conf文件的相关部分:

代码语言:javascript
复制
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

那么:我还应该尝试什么呢?蒂娅。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-30 04:23:29

你可以检查以下情况,

1- sudo service php5-fpm status,如果没有运行,试着启动它。

2-在将套接字更改为tcp/ip时删除unix,即在/etc/nginx/sites-available/default文件中,在php块中将fastcgi_pass unix:/var/run/php5-fpm.sock;更改为fastcgi_pass 127.0.0.1:9000;,在/etc/php5/fpm/pool.d/www.conf文件中将listen = /var/run/php5-fpm.sock更改为listen = 127.0.0.1:9000

3.尝试增加php的过程管理器,即pm.max_children=40pm.start_servers = 10pm.min_spare_servers = 5pm.max_spare_servers = 10

4-关闭nginx.conf中的保活连接

5-如果可能的话,尝试实现缓存 (对几乎静态的内容执行,这样所有的请求都不会影响php)。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39185268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档