当流量较高时,Laravel 502网关Nginx错误

时间:2018-06-29 14:45:27

标签: php laravel ubuntu nginx

我正在使用Laravel应用,下面是我的nginx配置代码:

server {
    listen 80;
    server_name domain.com;
    root /var/www/project/public;

    index index.html index.htm index.php index.nginx-debian.html;

    charset utf-8;
    location ~ /.well-known {
                allow all;
        }
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

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

    sendfile off;

    client_max_body_size 100m;

    location ~ \.php$ {
      include snippets/fastcgi-php.conf;
      fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

错误日志

2018/06/29 08:41:30 [error] 928#928: *14875 connect() to unix:/run/php/php7.0-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: IP, server: IP, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.0-fpm.sock:", host: "IP"

我的配置有问题吗?我有一台拥有32GB Ram,SSD和处理器的重型服务器:2x E5-2670 0 @ 2.60GHz。我正在将Ubuntu与NGINX一起使用。

请告诉我,我已经更换了许多服务器,但无法摆脱此问题。

1 个答案:

答案 0 :(得分:0)

检查您的php-fpm日志以查看nginx是否快要死了。您收到的错误是Nginx说它正在代理请求的服务器没有应答。如果他们位于两台不同的计算机上,则可能是网络问题,可能是因为没有足够的工作人员来满足所有传入的请求,也可能是由于VPS上的OOM杀手杀死了该进程。仅仅因为一台服务器有大量的RAM并不意味着它不会渗透内存。我有一个Magento网站的客户,该客户的一天结束时报告称,由于插件编码不良,在具有类似规格的服务器上引发了内存错误。

我刚刚看到您在日志中发布了一行。检查您的pool.conf中是否包含以下内容:

process.max,pm.max_children,pm.min / max_spare_servers

这些只是在交通拥挤的环境中可能需要调整的一些事情。