博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php-cgi和php-fpm,Windows环境下解决Nginx+php并发访问阻塞问题。
阅读量:6969 次
发布时间:2019-06-27

本文共 1062 字,大约阅读时间需要 3 分钟。

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下加入代码

 

  1. upstream fastcgi_proxy {
  2. server 127.0.0.1:9000;
  3. server 127.0.0.1:9001;
  4. server 127.0.0.1:9002;
  5. server 127.0.0.1:9003;
  6. server 127.0.0.1:9004;
  7. }

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

fastcgi_pass   fastcgi_proxy;

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

windows下 解决PHP-CGI 进程崩溃

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

转载地址:http://soisl.baihongyu.com/

你可能感兴趣的文章
Android Studio 3.0 如何生成 aar 并使用?
查看>>
Hbase/HbaseRest
查看>>
设置ToggleButton、Switch、CheckBox和RadioButton的显示效果
查看>>
Bootstrap 页面标题(Page Header)
查看>>
SVN版本还原
查看>>
使用SpringMVC创建支持向下兼容的版本化的API接口
查看>>
Chrome 显示 err_cert_authority_invalid 的处理方式
查看>>
简单理解倒排索引
查看>>
SpringAop在实际项目中的使用案例
查看>>
哪个对象才是锁?
查看>>
this关键字
查看>>
Python中字符串和datetime
查看>>
ng-Cordova插件之fileTransfer的使用
查看>>
基于struts1.框架的异常处理方案
查看>>
浅谈 Qt 内存管理
查看>>
【Qt】Qt之密码框不可选中、复制、粘贴、无右键菜单等【转】
查看>>
Flume中关于HDFS的sink配置
查看>>
Idea 社区版开发指南-1
查看>>
date命令转换unix时间戳
查看>>
/usr/lib目录属性更改引发的蝴蝶效应
查看>>