Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
nginx+中的错误502;php5 fpm_Nginx_Fastcgi_Php - Fatal编程技术网

nginx+中的错误502;php5 fpm

nginx+中的错误502;php5 fpm,nginx,fastcgi,php,Nginx,Fastcgi,Php,我在主题上有些错误。服务器负载不高:~15%的CPU,有几Gb的内存,硬盘没有内置。但错误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 manag

我在主题上有些错误。服务器负载不高:~15%的CPU,有几Gb的内存,硬盘没有内置。但错误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
我认为,这意味着负载不高

我增加了backlog参数:在sysctl-net.core.somaxconn=5000中,在php fpm pool-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\u位置

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
如何优化此系统并使其使用所有服务器资源


对不起,我的英语不好。

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

  • 在php fpm池配置中用
    listen=127.0.0.1:7777替换
    listen=/var/run/php5 fpm.sock
  • /etc/nginx/php_位置替换
    fastcgi_-passunix:/var/run/php5-fpm.sock
    fastcgi_pass 127.0.0.1:7777

我遇到了同样的问题,但不希望从套接字切换到TCP/IP。重新启动php fpm和nginx将解决此问题

sudo /etc/init.d/php-fpm restart
sudo /etc/init.d/nginx restart

在Centos 7,Plesk 12.5

在我的硬盘满了,一些服务失败后,我遇到了这个问题。 其他域工作得很好,但没有一个域它只给了我502和类似的超时。从错误日志:

[crit] 3112#0: *65746768 connect() to 
unix:///var/www/vhosts/system/sub.domain.de/php-fpm.sock failed 
(2: No such file or directory) while connecting to upstream

为了解决这个问题,我必须(首先让空间可用,然后)重新启动php fpm和nginx——然后这个错误消失了

此文件未创建的唯一原因是/etc/php-fpm.d/www.conf上的配置

更改侦听=127.0.0.1:9000

使用listen=/var/run/php-fpm/php-fpm.sock


然后重新启动nginx和php fpm,现在好多了。此外,我想说的是,将PHP更新到5.4版有很好的效果。我认为这里有一个错误。缺少
=
符号。它应该是
listen=127.0.0.1:7777
,而不是
listen 127.0.0.1:7777
AFAIK。找到了它-它现在在
/etc/nginx/sites available/*
我的同事们证明了我对这一方法的解释是错误的,但它似乎仍然是为什么为许多人工作的原因。几年后,我仍然在寻找问题的根本原因,却找不到。在ubuntu上,php fpm池配置的位置是/etc/php5/fpm/pool.d/www.conf。也别忘了在你做了这些更改后重新启动nginx和php5 fpm服务。我在ubuntu 13.10上,php5 fpm的日志记录在某种程度上是错误的发生。。。实际上,日志没有说什么:)我是通过直接从命令行运行守护进程发现错误的,
sudo php5 fpm--daemonize--fpm config/etc/php5/fpm/php fpm.conf
以防有人在Ubuntu 12.04.3 lts上的/etc/php5/fpm/pool.d/www.conf中搜索php fpm池文件。对于那些通过谷歌搜索到这个问题的人:首先尝试这个解决方案:每当遇到问题时重新启动应用程序,永远不能被认为是解决方案。这取决于问题的频率和可分配的资源量——是的,它可以是一个解决方案。当然,系统应该设计得更好的基本点仍然存在course@GeekRide如果这种情况需要使用套接字连接,那么正如DmitryV所说的“其在高负载情况下的问题是众所周知的”,我们将别无选择,只能战略性地重新启动服务。我觉得很遗憾,这么多人忽视了这一点,因为他们在生产成本较低的环境中工作。+1对于我的建议,在我调查有关服务状态时,
sudo service php5 fpm status
我注意到它不知何故没有运行;因此,通过简单地启动(或重新启动)
sudo服务php5 fpm start
解决了这个问题。我想将此留作历史参考——也就是说,这是另一种策略,尽管不如公认的答案。承认这个答案的剩余目的,我想请人们停止对它投反对票。我会删除它,但其他人可能会认为这也是一个可行的替代方案,以接受的答案。我有那行,重新启动了这两个,但文件仍然不存在。php5-fpm.log中没有错误