我为我的一个站点收到504网关超时。请帮忙找出原因?
这是我的nginx配置:
server {
listen 80;
server_name domain.com;
root /home/user/domain.com;
error_log /home/user/domain.com/error.log;
location / {
try_files $uri /index.php?q=$uri&$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Nginx错误日志:
$ sudo tail -n 1 domain.com/error.log
2014/08/21 17:09:35 [error] 16790#0: *30 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 5.18.54.52, server: domain.com, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock", host: "domain.com"
而且在php-fpm日志中什么也没有:
sudo tail -n 1 /var/log/php5-fpm.log
[21-Aug-2014 17:08:31] NOTICE: ready to handle connections
这是我的www.conf:
$ sudo nano /etc/php5/fpm/pool.d/www.conf
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 1
pm.max_spare_servers = 10
请帮我解决这个问题!谢谢!
从PHP 5.5.12开始,更改了FPM套接字权限以解决与安全相关的错误,您可以在此处阅读有关此内容的更多信息-> https://bugs.php.net/bug.php?id=67060
你listen.mode = 0660
现在应该设为listen.mode = 0666
您的FPM池配置的内部。还要确保您的listen.owner
和listen.group
是与运行Nginx相同的用户名/组。这是我设置中的内容:
listen.owner = nginx
listen.group = nginx
listen.mode = 0666
我假设您的Nginx配置user www-data;
然后只是简单地将nginx
我上面的引用更改为www-data
。
至于Nginx,这是我当前正在使用的工作示例:
# PHP-FPM Support
location ~ \.php$ {
fastcgi_pass unix:/var/run/nginx.sock;
include fastcgi.conf;
}
我认为您的Nginx配置很好,但是如果您想尝试一些不同的东西,我将发布我的配置作为对您的测试。
在进行任何配置更改后,请不要忘记重新启动PHP-FPM。
试试看,我确定它可以解决您的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句