文档章节

nginx 502

t
 tystys
发布于 2017/07/23 22:17
字数 1029
阅读 8
收藏 0

 

通常是由于前段服务器the frontend webserver--尝试连接 backend application handlers后端服务器 breakdown时

以下是执行过程|执行时又可能出现502|超时等

 

当然,配置错误也会爆502        

取决于不同的应用服务器--诊断502错误方案亦不同 

常见问题

PHP-FastCGI    (PHP-FPM)   NGINX.  

php-fpm未运行--502

php-fpm 无法启动

nginx无法和php-fpm通讯

nginx 超时

php-fpm超时 

PHP-FPM未运行

 ps +grep     查看是否运行php-fpm

 

root@nginx0:/var/log/nginx# ps aux | grep php
root     29191  0.0  1.7 133628 18108 ?        Ss   20:41   0:00 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
www-data 29193  0.0  0.5 133628  5956 ?        S    20:41   0:00 php-fpm: pool www
www-data 29194  0.0  0.5 133628  5956 ?        S    20:41   0:00 php-fpm: pool www

 

未运行|

则运行

init system command
SysV service php5-fpm start
Systemd systemctl start php5-fpm.service
init.d /etc/init.d/php5-fpm start
Upstart

initctl start php5-fpm

 

 

PHP-FPM启动失败 

如果无法启动--发起一个php页面的请求---tail nginx 错误日志 

www-data@nginx0:/var/log/nginx$ tail /var/log/nginx/error.log
2016/09/19 20:39:30 [crit] 28751#28751: *9 connect() to unix:/var/run/php5-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 192.0.2.101, server: example.com, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "192.0.2.255"
2016/09/19 20:39:50 [crit] 28751#28751: *9 connect() to unix:/var/run/php5-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 192.0.2.101, server: example.com, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "192.0.2.255"
2016/09/20 16:39:44 [crit] 28751#28751: *33 connect() to unix:/var/run/php5-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 192.0.2.101, server: example.com, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "192.0.2.255"

  PHP-FPM 启动失败几乎百分百是配置问题

www-data@nginx0:/var/log/nginx$ tail /var/log/syslog
Sep 20 16:39:10 nginx0 kernel: [77167.468712] init: php5-fpm main process (3551) terminated with status 78
Sep 20 16:39:11 nginx0 kernel: [77167.468727] init: php5-fpm main process ended, respawning

 

www-data@nginx0:/var/log/nginx$ cat /usr/include/sysexits.h | grep 78
#define EX_CONFIG       78      /* configuration error */

  PHP-FPM配置错误

  PHP-FPM 配置问题

  fat fingers, or a genuine configuration conflict配置冲突.

首先确认保证php-fpm所在用户组对通讯目录是有写权限的.

Next, verify that the socket is being created with the appropriate user permissions.

In particular, check your worker pool configurations (in /etc/php5/fpm/pool.d/*.conf)

and verify:

  • socket path
  • process owner/group
  • listen.owner/listen.group
user = www-data
group = www-dat

listen = /var/run/php5-fpm.sock

listen.owner = www-data
listen.group = www-data

Notice the typo in the configuration file above: group = www-dat should read group = www-data.

Fixing this typo and restarting the PHP-FPM daemon resolves the issue.

NGINX 通讯PHP-FPM失败

 

如果PHP-FPM和你的application应用都没问题 are working properly, 那么问题可能出现在NGINX’s 配置上.  (/etc/nginx/sites-enabled/default, by default) and verify that the fastcgi_pass directive matches the socket (listen) in your PHP-FPM worker pool configuration.

[...]
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_nam$
                include fastcgi_params;

        }

配置更改后记得重启NGINX.

 

 

NGINX超时

如果后端应用正在运行,却出现了502,问题多数出现在正在请求|正在访问的应用上尤其应用没有设置时间限制,而nginx是有时间限制的,超出配置的时间,是不再等待的 

 不同的应用下,执行时间大于30秒的可能会被执行,这时就需要增加ngixn最大超时时间,

如果程序执行时间是异常导致的超时,就需要优化了, 

 配置最大超时时间--首先打开PHP-FPM’s configuration file (/etc/php5/fpm/php.ini),

找到

max_execution_time = 30

然后 打开/etc/nginx/nginx.conf),

添加如下内容到http模块

add the following within the http block to increase timeout windows, buffers, and buffer sizes:

http { 
...

fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}

最后重启reload NGINX and PHP-FPM:

PHP-FPM:

init system command
SysV service php5-fpm reload
Systemd systemctl reload php5-fpm.service
init.d /etc/init.d/php5-fpm reload
Upstart initctl reload php5-fpm

NGINX:

init system command
SysV service nginx reload
Systemd systemctl reload nginx.service
init.d /etc/init.d/nginx reload
Upstart initctl reload nginx

PHP-FPM is timing out

有时,增加超时时间只是临时解决方案。

更多的应该是去找到你的应用程序,分析,优化,降低执行时间,  

例如,程序 在查询数据库时可能花费了大量的时间,直接超过了最大执行时间。  

如果nginx的执行时间足够高,临时解决方案是把php执行时间 set_time_limit()打开

当然 --长期的解决方案--还是去优化程序

 

© 著作权归作者所有

共有 人打赏支持
下一篇: php mysql 杂
t
粉丝 2
博文 72
码字总数 82272
作品 0
私信 提问
修改了nginx的配置,访问域名报502

我接手了一个flask+gunicorn+nginx项目,它分布在两台服务器虚拟机上,我改了一台虚拟机的nginx下的nginx.conf里的网关超时,然后nginx -s reload,然后就开始报502了,直接访问它的域名也是5...

W-Tom
07/12
345
1
Nginx 502 Bad Gateway 错误的原因及解决方法

刚才在调试程序的时候,居然服务器502错误,昨天晚上也发生了,好像我没有做非常规的操作。然后网上寻找了下答案, 把一些原因及解决方法汇总一下,以防生产环境下的502![在此输入图片描述]...

zhouyuan24
2013/03/30
0
0
Nginx防盗链 Nginx访问控制 Nginx解析php相关配置 Nginx代理

12.13 Nginx防盗链 cd /usr/local/nginx/conf/vhost vi test.com.conf 将以上内容复制到下图位置 测试,成功 前提data/wwwroot/test.com目录下要有1.gif 12.14 Nginx访问控制 cd /usr/local/...

cwliang
03/15
0
0
解决:502 bad gateway

502 Bad Gateway服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。 解决办法是:再刷新一下网页或清理一下电脑的缓冲文件在打开你想打开的网页就好了....

Junn
2013/07/28
0
0
修改了nginx的配置,访问域名报502

我接手了一个flask+gunicorn+nginx项目,它分布在两台服务器虚拟机上,我改了一台虚拟机的nginx下的nginx.conf里的网关超时,然后nginx -s reload,然后就开始报502了,直接访问它的域名也是5...

W-Tom
07/12
481
0

没有更多内容

加载失败,请刷新页面

加载更多

为什么日志要private static final

private static final Log logger = LogFactory.getLog(SpringProperties.class); 对于使用PMD的任何人来说,如果日志记录器没有声明为静态的和final的,那么这个博客的标题就会出现在PMD错误...

stys35
8分钟前
0
0
基于深度学习模型Wide&Deep的推荐

本实验选用数据为UCI开源数据集,仅用于学习,请勿商用) Wide&Deep推荐算法出自一篇论文《Wide&Deep Learning for RecommenderSystems》,Wide&Deep由两部分组成,分别是Wide和Deep。先来说...

阿里云官方博客
11分钟前
0
0
列出文件目录结构

以下代码可快速列出所有文件夹,子文件夹下文件 用tree /f显示为树形结构 mypath = wsh.exec("cmd /c tree /f " & Chr(34) & mypath & Chr(34)).StdOut.ReadAll 用 dir显示为长文件名结构 my...

tedzheng
13分钟前
0
0
8.05-Win10 的一些个人设置

1、隐藏 Cortana搜索框 右击任务栏 ——> 找到Cortana ——> 里面有三个选项(隐藏;显示Cortana图标;显示搜索框) ——> 选中自己所需样式 2、显示“我的电脑”等按钮 桌面右键 ——> 个性...

静以修身2025
15分钟前
0
0
windows 下 es安装ik后报错无法启动

1、没有安装分词器时可以正常启动 2、在安装分词器后就报错了 错误信息:Exception in thread "main" java.security.AccessControlException: access denied ("java.io.FilePermission" "D...

zhu_kai1
19分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部