What should I do if a 502 error occurs when deploying a yii project?
Remember the troubleshooting of 502 bad gateway error when nginx deployed the yii2 project
I had nothing to do on Saturday, so I tried to install and deploy yii2. There was no problem during the installation process, but when deployed to nginx, I encountered a 502 bad gateway problem, which took a long time to solve. This problem is something I have not encountered before when deploying yii2, so I note it here for reference.
Recommended related article tutorials: yii tutorial
1, installation and deployment environment
Operating system: macOS, php version :5.6, nginx version: 1.10.1, yii2 version: 2.0.
2, installation of yii2
The installation of yii2 is very simple, just refer to the manual on the official website. What I installed here is yii2-app-advanced (Yii 2 Advanced Project Template). The project address is on github. Just follow the installation instructions in the README step by step. I won’t go into details about this.
3, Deployment of yii2 on nginx
In fact, the README of the yii2-app-advanced project has already stated very clearly how to deploy on nginx, follow the steps There shouldn't be any problem. But I was lazy during deployment and directly used the nginx deployment parameters in the README, which resulted in a 502 bad gateway error.
The response codes starting with 5 in the HTTP status code are all caused by the server side, so take a look at the nginx log:
error log:
See upstream: "fastcgi: //127.0.0.1:9090" Here, the port seems wrong, so check the configuration of the virtual host:
Look at the configuration of php-fpm again:
Sure enough, it is the FastCGI server specified by the nginx virtual host The listening port is wrong, which will cause nginx to not get a response from the FastCGI server. So when the browser makes a request, nginx returns a 502 status code to the browser, telling the browser that the upstream FastCGI server has not responded.
4, Solution
In the nginx virtual host, modify the port specified by fastcgi_pass correctly, and this error will be solved.
5, Summary
(1) Errors starting with HTTP status code 5 are caused by the server side, while 502 bad gateway is caused by working as a gateway or proxy. The server (web server) received an invalid response from the upstream server (fastcgi server) when trying to perform the request.
(2) fastcgi_pass is a configuration directive of the ngx_http_fastcgi_module module. It specifies the address of the fastcgi server. Its description in the nginx document is as follows:
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.
The above is the detailed content of What to do if a 502 error occurs when deploying a yii project. For more information, please follow other related articles on the PHP Chinese website!