nginx php访问阻塞,php-cgi和php-fpm,Windows环境下解决Nginx+php并发访问阻塞问题。

php-cgi 是运行php,

php-fpm是守护php-cgi进程

nginx配置目录运行php

location  ~ \.php$

{

root /var/www/html;

fastcgi_index index.php;

fastcgi_pass 127.0.0.1:9000;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

配置弄好了,我意思是,nginx与php-cgi通信有3种方式吧?

1、nginx通过php-fpm与php-cgi联系;

2、nginx通过spawn-fcgi与php-cgi联系;

3、直接与php-cgi联系;(当然这个方法我还不理解,甚至不确定有没有这个实现)

php-fpm没用过 ,我用spawn-fcgi 。

守护也就是当你杀死php-cgi这进程。spawn-fcgi管理器会平滑从新生成新的进程(实验过)

性能方面 , 很多人用php-fpm ,我图方便就用了spawn-fcgi.

直接使用php-cgi,问题挺多。比如进程无辜消失等。

Windows环境下解决Nginx+php并发访问阻塞问题。

linux下是没问题,因为是php-fpm,而Windows下是fastcgi,它不会自动去启动fastcgi进程。所以只能一个一个排队,但是如果用curl去get本地文件,那么这个队就排不明白堵死了。

但是基本上,我们在Windows下都是开发调试用,好在也用不了太多。所以只能手动建立fastcgi进程去让Nginx连接。

首先配置Nginx.conf,在http下加入代码

upstream fastcgi_proxy {

server 127.0.0.1:9000;

server 127.0.0.1:9001;

server 127.0.0.1:9002;

server 127.0.0.1:9003;

server 127.0.0.1:9004;

}

然后修改location ~ \.php$中的fastcgi_pass

fastcgi_pass fastcgi_proxy;

修改后,当127.0.0.1:9000阻塞时,Nginx会自动连接其他的进程端口。就可以保证开发调试使用了。

windows下 解决PHP-CGI 进程崩溃

https://www.jianshu.com/p/1f2d4b1ca10d

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值