gpt4 book ai didi

php - Nginx 和 PHP-FPM 502 网关错误

转载 作者:行者123 更新时间:2023-12-04 17:58:14 24 4
gpt4 key购买 nike

让我先解释一下情况,我有一台 64 GB 内存和 20 核 40 GB (SSD) 的服务器。我有大约 2000 个并发用户

1 周前,我将 apache 与 php 7 一起使用,但 cpu 为 80% 有时高达 101%,这是因为在从 apache 转移到 Nginx、从 MySql 转移到 MongoDB 之后,巨大的 sql 插入。 cpu大约是8%。

我现在的问题是 Nginx 多次返回 502 错误的网关响应,我寻找了一些答案但没有任何帮助,但是当我将 fpm 套接字更改为端口 listen =/var/run/php5- fpm.socklisten = 127.0.0.1:9000 ngnix 总是返回 502 ,我不知道是什么问题。

最佳答案

您的服务器足够强大,每天可以处理>500 000 应用程序请求(如果编写得当的话)。

问题是因为 PHP-FPM 不能有更多的子进程来服务更多的请求。

在 apache 中,它会自动启动额外的 apache 进程。

但是 Nginx + PHP-FPM 让您可以自由地处理这种情况。

只需更改您的 fpm 池 conf:/etc/php/php-fpm.d/www.conf(或您使用的任何内容)

确保它有这个内容:

pm = static
pm.max_children = 4096
pm.process_idle_timeout = 10s
pm.max_requests = 32

然后重启php fpm

同时编辑 nginx.conf 并确保其顶部有以下字段:

user http;
worker_processes auto;

events {
worker_connections 4096;
multi_accept on;
use epoll;
}



附:不要将 listen 属性更改为 ip:port - socket 更快,因为在 ip:port 中它通过 ip 和端口创建网络连接,但在 socket 版本中它只是打开.sock"file"。

附:不要更改 fastcgi_buffers 和 etc 指令,它不会修复 bad gateway 问题,因为 php-fpm 进程较少。

在我的服务器中它是默认的:

fastcgi_buffers 32 1024k;
fastcgi_buffer_size 1024k;


附:禁用不必要的日志记录 (nginx.conf) 以免使您的磁盘驱动器有更多的 IO 负载:

access_log off;
error_log /var/log/nginx/error.log crit;

如果您需要监控,请使用newrelic 并监控您服务器的网络、cpu、内存事件

关于php - Nginx 和 PHP-FPM 502 网关错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38551104/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com