小编its*_*_me的帖子

让 PHP-FPM 监听“IPAddress:Port”而不是“/var/run/php5-fpm.sock;”

当我今天对我的网站进行负载测试时(使用blitz.io);尽管有大量 RAM(超过 50%)和 CPU 能力(超过 70%)可用,但结果显示我的网站在每秒达到一定数量的并发用户时开始超时。

我的网站的 Nginx 错误日志 (/var/log/nginx/example.com.error.log) 显示如下内容:

2013/02/12 19:03:57 [错误] 13749#0: *3175 connect() 到 unix:/var/run/php5-fpm.sock 在连接到上游时失败(11:资源暂时不可用),客户端: 54.123.456.46,服务器:example.com,请求:“GET / HTTP/1.1”,上游:“fastcgi://unix:/var/run/php5-fpm.sock:”,主机:“example.com”

谷歌搜索错误让我找到了这个答案,它指出使用 TCP\IP 连接而不是 unix 套接字作为问题的解决方案;因为unix套接字的“高负载情况下的问题是众所周知的”

因此,正如答案所建议的:

  • 我在 /etc/php5/fpm/pool.d/www.conf 中替换listen = /var/run/php5-fpm.socklisten 127.0.0.1:9000

  • 由于我的发行版(Debian Wheezy)上没有/etc/nginx/php_location,所以我没有采取任何措施。

  • fastcgi_pass unix:/var/run/php5-fpm.sock;由于我在站点的 Nginx 配置文件中使用,即 /etc/nginx/sites-available/example.com,因此我将其替换为fastcgi_pass 127.0.0.1:9000;

现在的问题是,当我502 Bad Gateway访问我的网站时出现错误。是的,我做了reloadNginx 和 PHP-FPM。我究竟做错了什么?(这里完全是新手,尽我最大努力边做边学。)

如果这是相关的,当我这样做时sudo service php5-fpm restart,我会收到此错误:

[FAIL] Restarting PHP5 FastCGI Process Manager: php5-fpm failed!
Run Code Online (Sandbox Code Playgroud)

这只是在我做出上述更改后才发生的。我怎样才能解决这个问题? …

php nginx fastcgi php-fpm debian-wheezy

4
推荐指数
1
解决办法
6万
查看次数

标签 统计

debian-wheezy ×1

fastcgi ×1

nginx ×1

php ×1

php-fpm ×1