部署yii项目时出现502错误怎么办

发布时间 - 2020-01-22 00:00:00    点击率:

部署yii项目时出现502错误怎么办?

记一次nginx部署yii2项目时502 bad gateway错误的排查

周六闲来无事,就试着安装和部署下yii2,安装过程没什么问题,但部署到nginx上时遇到了502 bad gatewary问题,折腾了半天才搞定。这个问题是我以前在部署yii2时没有遇到过的,因此记在这里以备忘。

相关文章教程推荐:yii教程

1,安装和部署环境

操作系统:macOS,php版本:5.6,nginx版本:1.10.1,yii2版本:2.0。

2,yii2的安装

yii2的安装很简单,参考官网的手册即可。我这里安装的是yii2-app-advanced(Yii 2 Advanced Project Template),项目地址在github上,按照README中的安装说明一步一步来就行,这个就不多说了。

3,yii2在nginx上的部署

其实yii2-app-advanced项目README中对于如何部署在nginx上已经说的很清楚了,按照步骤来应该不会有什么问题。但是我部署时偷了个懒,直接把README中nginx的部署参数拿来用了,结果才导致了502 bad gateway的错误。

HTTP状态码中5打头的响应代码都是由于服务器端引起的,所以看下nginx的日志:

error log:

看到upstream: "fastcgi: //127.0.0.1:9090"这里,端口好像不对,于是查看下虚拟主机的配置:

再看下php-fpm的配置:

果然,是nginx虚拟主机指定的FastCGI服务器监听端口错了,这样就会导致nginx没有得到FastCGI服务器的响应。所以浏览器发出请求时,nginx给浏览器返回一个502的状态码,告诉浏览器上游的FastCGI服务器没有响应。

4,解决

在nginx的虚拟主机中,把fastcgi_pass指定的端口修改正确,这个错误就解决了。

5,总结

(1)HTTP状态码5打头的错误是由服务器端引起的,502 bad gateway则是由于作为网关或者代理工作的服务器(web服务器)尝试执行请求时,从上游服务器(fastcgi服务器)接收到无效的响应。

(2)fastcgi_pass是ngx_http_fastcgi_module模块的一个配置指令,它指定了fastcgi服务器的地址,nginx文档中对于它的描述如下:

Syntax:    fastcgi_pass address;
Default:    —
Context:    location, if in location

Sets the address of a FastCGI server. The address can be specified as a domain name or IP address, and a port:
fastcgi_pass localhost:9000;

or as a UNIX-domain socket path:
fastcgi_pass unix:/tmp/fastcgi.socket;

If a domain name resolves to several addresses, all of them will be used in a round-robin fashion. In addition, an address can be specified as a server group.


# yii  # php  # nginx  # gateway  # Error  # github  # macos  # http 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么使用Intervention Image库处理图片上传和缩放  HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】  javascript如何操作浏览器历史记录_怎样实现无刷新导航  Laravel如何处理文件下载请求?(Response示例)  Laravel怎么使用artisan命令缓存配置和视图  Python文件流缓冲机制_IO性能解析【教程】  网站建设保证美观性,需要考虑的几点问题!  开心动漫网站制作软件下载,十分开心动画为何停播?  Laravel怎么实现模型属性的自动加密  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  Laravel如何为API生成Swagger或OpenAPI文档  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  如何快速查询域名建站关键信息?  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  Laravel如何使用Telescope进行调试?(安装和使用教程)  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  如何挑选高效建站主机与优质域名?  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  什么是javascript作用域_全局和局部作用域有什么区别?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  javascript中的try catch异常捕获机制用法分析  北京企业网站设计制作公司,北京铁路集团官方网站?  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  🚀拖拽式CMS建站能否实现高效与个性化并存?  C++时间戳转换成日期时间的步骤和示例代码  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  Laravel如何配置任务调度?(Cron Job示例)  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  七夕网站制作视频,七夕大促活动怎么报名?  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  香港服务器网站推广:SEO优化与外贸独立站搭建策略  电商网站制作价格怎么算,网上拍卖流程以及规则?  Laravel Fortify是什么,和Jetstream有什么关系  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  手机软键盘弹出时影响布局的解决方法  如何在阿里云虚拟服务器快速搭建网站?  JavaScript如何实现音频处理_Web Audio API如何工作?  在线制作视频的网站有哪些,电脑如何制作视频短片?  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  Laravel用户密码怎么加密_Laravel Hash门面使用教程  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  教学论文网站制作软件有哪些,写论文用什么软件 ?  如何在万网主机上快速搭建网站?  Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康