1

我经常遇到的问题是,如果我转到我的服务器上使用 php 的页面,我会收到“502 Bad Gateway”错误。

错误日志:

/var/log/nginx/error.log每分钟显示大约 3 个此错误的副本:

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(!)中看到的很多东西:

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
  • 删除并重新安装php5, php5-cgi, 和php5-fpm
  • 确保apache2没有在我的系统上运行
  • 将此添加nginx.conf, 内http {... }

    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.owner这与和listen.group中引用的所有者相同/etc/php5/fpm/pool.d/www.conf

  • 尝试将对该套接字的引用更改为 TCP/IP 套接字:

    /etc/nginx/sites-available/default包含行fastcgi_pass unix:127.0.0.1:9000; /etc/php5/fpm/pool.d/www.conf包含行listen = 127.0.0.1:9000;

    由于这使任何 php 页面都无法正常工作,因此我恢复了该更改。

  • 确保我没有在我的nginx.conf设置中禁用 PHP 文件。我不是,有时它有效,所以不可能。

php5-fpm 设置:

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

pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

那么:我还应该尝试什么?TIA。

4

1 回答 1

5

您可以检查以下内容,

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.socklisten = 127.0.0.1:9000

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

4- 关闭来自 nginx.conf 的 keepalive 连接

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

于 2016-08-30T04:23:29.133 回答