Nginx常见502错误

1.配置错误

因为nginx找不到php-fpm了,所以报错,一般是fastcgi_pass后面的路径配置错误了,后面可以是socket或者是ip:port

2.资源耗尽

lnmp架构在处理php时,nginx直接调取后端的php-fpm服务,如果nginx的请求量偏高,我们又没有给php-fpm配置足够的子进程,那么php-fpm就会资源耗尽,一旦资源耗尽nginx找不到php-fpm就会出现502错误,

解决方案
去调整php-fpm.conf中的pm.max_children数值,使其增加,但是也不能无限增加,毕竟资源有限,一般4G内存机器如果跑php-fpm和nginx,不跑mysql可以设置为150,8G为300以此类推

3.其他原因

除了上面的两种错误还有其他的原因,很少有,我们可以借助nginx的错误日志来进行排查vim /usr/local/nginx/logs/nginx_error.log 我们也可以给日志定义级别vim/usr/local/nginx/conf/nginx.conf 找到error_log,默认是crit最严谨的就行,也可以改成debug显示的信息最全面,但是很容易撑爆我们的磁盘。

首先我们需要让浏览器进行访问
修改nginx的配置文件
[[email protected] ~]# vim/usr/local/nginx/conf/vhosts/111.conf

server
{
listen 80;
server_name www.111.com; //域名地址
index index.html index.htm index.php;
root /data/www/;

location ~ .phpfastcgi_script_name;
}

}

检查语法是否正常
[[email protected] ~]#/usr/local/nginx/sbin/nginx -t
重新加载配置文件
[[email protected] ~]# /usr/local/nginx/sbin/nginx-s reload
[[email protected] ~]# /etc/init.d/nginx reload

检查nginx是那个用户跑的
[[email protected] ~]# ps aux |grep nginx
编辑php-fpm文件
我们要在这个php-fpm文件里面设置nginx的用户主,跟组这样才不会显示502
[[email protected] ~]# vim/usr/local/php/etc/php-fpm.conf

[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log =/usr/local/php/var/log/php-fpm.log
[www]
listen = /tmp/www.sock
user = php-fpm
group = php-fpm
listen.owner = nobody //定义属主
listen.group = nobody //定义属组
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024

配置完之后重启php-fpm
[[email protected] ~]# /etc/init.d/php-fpm restart
ps: 再补充一个,是近期很多同学遇到的问题
这种情况下,使用的是socket,版本高于5.4(含5.4) 默认监听的socket文件权限是所有者只读,属组和其他用户没有任何权限。所以,nginx的启动用户(咱们配置的是nobody)就没有办法去读这个socket文件,最终导致502,这个问题可以在nginx的错误日志中发现。解决办法很简单,上面给出的配置文件中就有避免这个问题的配置。
listen.owner = nobody //定义属主
listen.group = nobody //定义属组
这两个配置就是定义socket的属主和属组是谁。除了这个还有一种方法
listen.mode = 777
这样nobody也可以有读取权限了。

作者:Success85
链接:https://www.jianshu.com/p/25bf9c783a9f
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处

原文地址:https://www.cnblogs.com/newAndHui/p/12382312.html

时间: 2024-10-10 05:30:09

Nginx常见502错误的相关文章

nginx排查502错误

排查502错误1.查看/usr/local/nginx/conf/nginx.conf从而知道其错误日志在哪.重点查看其错误日志.2.如果是/tmp/dd.sock2017/05/01 18:48:33 [error] 2015#0: *1 access forbidden by rule, client: 192.168.81.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "192.168

nginx+php,502错误

502错误基本就是php进程执行中挂了,其中有个原因就可能是进程执行超时设置导致的比如这个: ; The timeout for serving a single request after which the worker process will; be killed. This option should be used when the 'max_execution_time' ini option; does not stop script execution for some rea

nginx的502错误及常见解决方法汇总

nginx以其高性能以及对物理计算资源的高密度利用,展示了较apache更为优越的性能,目前很多企业都 更加倾向于使用nginx架构的web服务,但是我们在安装配置与配置的过程中经常会遇到502的错误,那么 引起这些错误的原因有哪些,又有着哪些解决方法呢?我们以其来看一下 一.配置文件出错 我们在搭建LNMP环境的时候,尤其要编译php和nginx,悉心的人会发现,这里编译php与LAMP环境中编译 的php的方式不一样,并没有像在apache的基础上编译php那样要在编译参数中添加与nginx

Nginx常见错误与问题之解决方法技术指南

  Nginx常见错误与问题之解决方法技术指南. 安装环境: 系统环境:redhat enterprise 6.5 64bit 1.Nginx 常见启动错误 有的时候初次安装nginx的时候会报这样的错误 sbin/nginx -c conf/nginx.conf 报错内容:sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or

服务器502错误

502错误解决办法总结:       通常错误原因只分两方面:1.环境初始化的时候.2.某次修改代码之后出现502错误       针对问题1,通过查询服务器错误日志.PHP-fpm错误日志.以及其它各种错误日志.根据问题修改服务器配置.PHP.ini配置等方式解决,如上面前5条说明       针对问题2,必然是通过代码排查找寻代码错误,如6.7条记录 1. 2014/08/02 16:14:31 [error] 17029#0: *17941 recv() failed (104: Conn

LNMP(nginx防盗链,访问控制,解析php相关配置,Nginx代理,常见502问题)

一.nginx防盗链 nginx防盗链: [[email protected] ~]# vim /usr/local/nginx/conf/vhost/test.com.conf   添加以下内容 location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$ { expires 7d; valid_referers none blocked server_names  *.test.com ;      

shell 练习(08)——Nginx 502 错误检查处理

1. 题目 服务器上跑的是 LNMP 环境,近期总是有502现象.502为网站访问的状态码,200正常,502错误是Nginx最普遍常见的错误状态码.由于502错误码只是暂时的,并且只要重启 php-fpm 服务则502消失,但不重启的话,则会一直持续很长一段时间.所以,有必要写一个监控脚本,监控访问日志的状态码,一旦发生502,则自动重启一下 php-fpm 服务. 设定: 1) Nginx 的 access_log 在 /data/logs/nginx/access.log 2) 脚本死循环

005_常见的502错误

常见的502错误 1. 配置错误 因为nginx找不到php-fpm了,所以报错,一般是fastcgi_pass后面的路径配置错误了,后面可以是socket或者是ip:port: 2. 资源耗尽 lnmp架构在处理php时,nginx直接调取后端的php-fpm服务,如果nginx的请求量偏高,我们又没有给php-fpm配置足够的子进程,那么php-fpm就会资源耗尽,一旦资源耗尽nginx找不到php-fpm就会出现502错误: 解决方案: 去调整php-fpm.conf中的pm.max_ch

19. Nginx常见错误

HTTP 状态码 413:用户上传的文件过大,需要调高 client_max_body_size 参数设置 502:后端无响应,例如 php 服务是否启动,php-fpm 的 pm 相关设置值是否过小导致无法创建新的进程处理请求等 504:后端服务执行超时,此时需要查看一下后端服务器是否CPU占用过高,RDS数据库是否有慢查询等 专题阅读 1. Nginx的优点 2. Nginx的安装与开机自启 3. Nginx目录和配置语法 4. Nginx模块 5. Nginx静态资源处理 6. Nginx