记一次504 Gateway Time-out
使用curl请求是超时,查了下资料原来是端口被占用,造成了死锁,记录下
首先要知道为什么会出现死锁?
在我们访问页面的时候这个端口进程就已经被使用,当我们再在页面中curl请求其他页面因为没有其他的端口,php-cgi当然还要使用9000,就造成了阻塞所以就死锁了。
运行环境:windows + nginx + php
解决方法:
打开cmd,执行
D:\App_self\phpstudy\PHPTutorial\php\php-7.0.12-nts\php-cgi.exe -b 127.0.0.1:9001 -c D:\App_self\phpstudy\PHPTutorial\php\php-7.0.12-nts\php.ini
注意,cmd窗口不要关闭
再在请求页的vhost配置文件中修改
location ~ \.php(.*)$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^((?U).+\.php)(/?.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; include fastcgi_params; }
这里的fastcgi_pass要改成127.0.0.1:9001,即cmd开启的端口。
over
推荐一个nginx+php-cgi的运行原理,很不错,要常看
http://www.cnblogs.com/mangguoxiansheng/p/5967745.html