当前位置: 首页 > 面试题库 >

Nginx + php5-fpm中的错误502

魏宏邈
2023-03-14
问题内容

我的主题有误。服务器负载不高:大约15%的CPU,有几个Gb的内存,HDD并不忙。但是错误502大约会引发3%的情况。

程序:Debian 6,nginx / 0.7.62,php5-fpm(5.3.3-1)。

在nginx的error.log中是此错误:

connect() to unix:/var/run/php5-fpm.sock failed

php5-fpm的状态通常是这样的:

accepted conn:   41680
pool:             www
process manager:  dynamic
idle processes:   258
active processes: 1
total processes:  259

我认为,这意味着负载不高。

我增加了积压参数:在sysctl中-net.core.somaxconn = 5000,在php-fpm池中-listen.backlog
=5000。没有效果。

我引用一个配置:

/etc/nginx/nginx.conf

user www-data;
worker_processes  8;
timer_resolution 100ms;
worker_rlimit_nofile 20240;
worker_priority -5;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  2048;
    use epoll;
    # multi_accept on;
}

http {
    include       /etc/nginx/mime.types;

    access_log  /var/log/nginx/access.log;

    sendfile        on;
    tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;

    gzip  on;
    gzip_min_length 1100;
    gzip_buffers 64 8k;
    gzip_comp_level 3;
    gzip_http_version 1.1;
    gzip_proxied any;
    gzip_types text/plain application/xml application/x-javascript text/css;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;

    client_max_body_size 100M;
    server_tokens off;
}

/ etc / nginx / php_location

fastcgi_pass   unix:/var/run/php5-fpm.sock;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
fastcgi_buffers 256 128k;
#fastcgi_buffer_size 16k;
#fastcgi_busy_buffers_size 256k;
fastcgi_connect_timeout 300s;
fastcgi_send_timeout 300s;
fastcgi_read_timeout 300s;
include fastcgi_params;

php-fpm池

[www]
listen = /var/run/php5-fpm.sock
listen.backlog = 5000
listen.owner = www-data
listen.group = www-data
listen.mode = 0666
user = www-data
group = www-data
pm = dynamic
pm.max_children = 1024
pm.start_servers = 64
pm.min_spare_servers = 64
pm.max_spare_servers = 128
pm.max_requests = 32000
pm.status_path = /system/php5-fpm-status
slowlog = /var/www/log/php-fpm.log.slow
chdir = /var/www

如何优化该系统并使之使用所有服务器资源?

PS。对不起,我的英语不好。


问题答案:

问题是套接字本身,它在高负载情况下的问题是众所周知的。请考虑使用TCP \ IP连接代替unix套接字,因为您需要进行以下更改:

  • php-fpm池配置中 替换listen = /var/run/php5-fpm.socklisten = 127.0.0.1:7777
  • / etc / nginx / php_location中 替换fastcgi_pass unix:/var/run/php5-fpm.sock;fastcgi_pass 127.0.0.1:7777;


 类似资料:
  • 我在主题上有些错误。服务器负载不高:~15%的CPU,有几Gb的内存,硬盘没有内置。但错误502在大约3%的情况下抛出。 程序:Debian 6,nginx/0.7.62,php5-fpm(5.3.3-1)。 在nginx的error.log是这个错误: php5 fpm的状态通常如下: 我认为,这意味着负载不高。 我在sysctl-net中增加了backlog参数。果心somaxconn=500

  • 这是我的错误。来自nginx的日志: 2014/10/02 14:51:29[错误] 15936#0:*1 FastCGI在stderr中发送:"主脚本未知",同时读取来自上游的响应头,客户端:134.106.87.55,服务器:sumomo.shitteru2.net,请求:"GET/index.phpHTTP/1.1",上游:"fastcgi://unix:/var/run/php5-fpm.

  • 我的错误日志从nginx一直说: [错误]82305#0:*542243 connect()到unix:/var/run/php5 fpm。连接到上游时sock失败(146:连接被拒绝) 大约每30秒。然而,我的php-fpm日志在这个错误中没有显示任何内容。只有nginx显示日志。php-fpm的nginx配置如下: 编辑:刚刚为nginx和php fpm添加了完整配置: php fpm:

  • 我想做一个完全dockerizedDrupal安装。我的第一步是让容器运行Nginx和php5-fpm,两者都是基于Debian的。我在CoreOS alpha频道(使用数字海洋) 我的DockerFile如下所示: Nginx: 这个容器构建并运行良好。我在我的服务器ip上看到默认的Nginx页面。 php5-fpm: 这个容器也没有任何问题,并且在启动时保持运行。 我首先使用以下命令启动php

  • 我已经尝试在我的nginx/php5 fpm堆栈上安装mediawiki大约一天了,我在这个堆栈上安装了许多其他框架,从Wordpress、Magento到OpenEMON,所有这些都工作得很好: Ubuntu 12.04 LTS 如果你看这里:http://wiki.qubmc.co.uk/mw-config/index.php 按继续只会出现会话错误: 会话是由PHP为这个应用程序和其他应用程

  • 我试图让Nginx PHP5-FPM Drupal 7正常工作,但当我访问我的域时,我发现“404”没有找到。 我的配置基于:-https://github.com/perusio/drupal-with-nginx - https://github.com/perusio/php-fpm-example-config /etc/nginx/nginx。形态 ###################