php 502 bad gateway 解决方法
起因
新装的LNMP环境怎么都跑不起来代码,一直提示502 bad gateway 本着有事找度娘的精神,我首先百度了以下,果然度娘一下帮我找到了很多网友们提供的答案,五花八门,有的说是超时时间的问题,有的说是php没有启动的问题。
作为一个程序员排查问题是必备技能之一,经过一番排查,并不是超时的问题,php也已经正常启动,那为什么会出现这样的问题呢?从php未启动的基础上我作了一个大胆的假设是不是配置的fast_cgi有问题呢?既然有了大胆的假设接下来就是小心求证的过程了。
小心求证
首先上一段为关于fast_cgi的配置代码
location ~* \.php$ {fastcgi_index index.php;fastcgi_pass 127.0.0.1:9000;include fastcgi_params;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_param SCRIPT_NAME $fastcgi_script_name;}
乍看是没什么毛病毕竟网上千篇一律的都是这样的配置,接下我使用netstat -tlnp | grep 9000 筛选了一下监听9000的程序然而结果却出乎意料,并没有监听9000的程序,结果如下
(Not all processes could be identified, non-owned process info
到这里几乎已经很大几率是出现在配置上了,查询了一下NGINX 相关的配置资料发现
Nginx和PHP-FPM的进程间通信有两种方式,一种是TCP,一种是UNIX Domain Socket.
其中TCP是IP加端口,可以跨服务器.而UNIX Domain Socket不经过网络,只能用于Nginx跟PHP-FPM都在同一服务器的场景.用哪种取决于你的PHP-FPM配置:
方式1:
php-fpm.conf: listen = 127.0.0.1:9000
nginx.conf: fastcgi_pass 127.0.0.1:9000;
方式2:
php-fpm.conf: listen = /tmp/php-fpm.sock
nginx.conf: fastcgi_pass unix:/tmp/php-fpm.sock;
其中php-fpm.sock是一个文件,由php-fpm生成,类型是srw-rw—-.
UNIX Domain Socket可用于两个没有亲缘关系的进程,是目前广泛使用的IPC机制,比如X Window服务器和GUI程序之间就是通过UNIX Domain Socket通讯的.这种通信方式是发生在系统内核里而不会在网络里传播.UNIX Domain Socket和长连接都能避免频繁创建TCP短连接而导致TIME_WAIT连接过多的问题.对于进程间通讯的两个程序,UNIX Domain Socket的流程不会走到TCP那层,直接以文件形式,以stream socket通讯.如果是TCP Socket,则需要走到IP层,对于非同一台服务器上,TCP Socket走的就更多了.
UNIX Domain Socket:
Nginx <=> socket <=> PHP-FPM
TCP Socket(本地回环):
Nginx <=> socket <=> TCP/IP <=> socket <=> PHP-FPM
TCP Socket(Nginx和PHP-FPM位于不同服务器):
Nginx <=> socket <=> TCP/IP <=> 物理层 <=> 路由器 <=> 物理层 <=> TCP/IP <=> socket <=> PHP-FPM
而此次出现问题的原因在于,我使用的是UNIX Domain Socket而nginx配置的确实tcp方式,既然知道症结所在,修改起来也就方便很多了修改代码如下
location ~* \.php$ {fastcgi_index index.php;#fastcgi_pass 127.0.0.1:9000; 注释掉tcp方式fastcgi_pass unix:/dev/shm/php-cgi.sock;#使用UNIX Domain Socketinclude fastcgi_params;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_param SCRIPT_NAME $fastcgi_script_name;}
修改完配置之后,重启服务器,问题果然就解决了.
php 502 bad gateway 解决方法相关推荐
- lnmp一键包502 Bad Gateway解决方法
使用LNmp有一段时间了,可是在流量大的时候,有时会莫名其妙的出现Nginx 502 Bad Gateway,不是php-fpm死掉了,就是nginx死掉了,网站多的时候根本没空每天一个个检查,往往是 ...
- php502bad gateway,经验之谈:nginx php 502 bad gateway 解决方法
今天在使用nginx时发现运行php页面会提示502 bad gateway这类错误了,下面我根据各位群友提供的一些方法完美的解决了502 bad gateway问题. 访问phpMyAdmin时,出 ...
- LNMPA(LNMP0.7)安装出现502 Bad Gateway解决方法
2019独角兽企业重金招聘Python工程师标准>>> LNMPA是什么? 简单的说就是Linux+Nginx+MySql+PHP+Apache 怎么会用这种构架? Nginx和Ap ...
- 常见的Nginx 502 Bad Gateway解决办法
常见的Nginx 502 Bad Gateway解决办法如下: Nginx 502错误情况1: 网站的访问量大,而php-cgi的进程数偏少. 针对这种情况的502错误,只需增加php-cgi的进程数 ...
- php502bad gateway,PHP表单提交后出现502 bad gateway解决办法
搜索热词 <PHP表单提交后出现502 bad gateway解决办法>要点: 本文介绍了PHP表单提交后出现502 bad gateway解决办法,希望对您有用.如果有疑问,可以联系我们 ...
- nginx 502 Bad Gateway解决办法
我的解决方式比较小白, 第一次报这个错(nginx 502 Bad Gateway).网上找了一大圈都是PHP什么的,但是好像都不适用. 于是问了之前的一个同事,他说是不是我的tomcat关闭了,我恍 ...
- nginx常见502错误的解决方法
Nginx 502错误情况1: 网站的访问量大,而php-cgi的进程数偏少. 针对这种情况的502错误,只需增加php-cgi的进程数.具体就是修改/usr/local/php/etc/php-fp ...
- 记一次服务后端502 Bad Gateway解决办法
1.502 Bad Gateway 意思为错误的网关 2.这次错误是调试本地开发环境和测试环境是遇到的 3.具体报错原因分析: ①本地服务需要http远程调用测试环境的服务 ②测试环境是nginx+服 ...
- php 502 bad gateway,解决lnmp服务器环境访问php文件出现502 Bad Gateway错误问题
网站原来运行正常,突然出现 "502 Bad Gateway"页面,可能因为phpcgi进程不够用而造成502,一般php-cgi默认进程是5个,不够则需要修改/usr/local ...
最新文章
- 网络设置计算机,怎么重置电脑网络设置
- 那么多GAN哪个好?谷歌大脑泼来冷水:都和原版差不多
- 咱们一起聊聊Zookeeper
- windows平台下:scikit-learn安装教程
- 让聊天机器人同你聊得更带劲 - 对话策略学习 | 论文访谈间 #21
- html链接sqlserver,js连接sqlserver进行查询
- javaweb男的gulp入手实践
- proteus中使用虚拟串口实现单片机和上位机通讯
- glog 编译报错 ERROR macro is defined. Define GLOG_NO_ABBREVIATED_SEVERITIES before including logging.h.
- 在windows上安装 chocolatey.1.1.0.nupkg
- html css 窗口样式,简单的css样式网页
- 计算机键盘fn,笔记本键盘fn键有什么用 笔记本键盘fn键使用说明大全
- 【原创--学习整理】学习bat和dos的相关资料整理--汇总
- Asp.Net Core 密码加密方案
- webpack中vender的抽离
- RSA 含两道oj 上ctf题目
- 【poj-1066】判断线段相交
- assembly 输出ab中所有数_BGA、TAB、零件、封装及Bonding制程术语解析
- 隐私计算头条周刊(12.4-12.10)
- 如何解决微信端不能直接跳转浏览器
热门文章
- myeclipse 6 注册码生成
- 织梦DedeCMS管理员动态密码登录插件下载
- c语言程序设计实践万年历,c语言程序设计万年历-20210408030342.docx-原创力文档
- 这是昨天的内容,就这样慢慢整吧,然后,荒废了好多时间啊!!
- Learning and Meta-Learning of Stochastic Advection-Diffusion-Reaction Systems from Sparse Measuremen
- Unity引擎中的C#语言学习的笔记(1)
- 哔咔服务器无响应,哔咔哔咔漫画进不去怎么办 无法进入解决办法
- 存储误删除所有lun的数据恢复方法
- 【Windows】U 盘装系统,无法格式化所选磁盘分区[错误: 0x8004242d]
- 微信小程序能用php框架吗,WeiPhp框架在微信小程序后台开发的优势与使用方法