出现情况:
1.php如下
<?php sleep (50); echo 'hello';
2.php如下
<?php echo 'hello';
当先打开1.php再打开2.php时,2.php会等到1.php执行完后才输出。
网上查到的说有session锁,试了下session_write_close(),并没有效果。
解决思路,使用upstream 搭建负载均衡服务器,当前php-cgi阻塞的时候,可以执行另一个php-cgi程序;
物料:RunHiddenConsole下载链接: https://pan.baidu.com/s/1sLnTKWk0BwRbJC-nNi8jNQ 提取码: akdi
(解压后RunHiddenConsole.exe,放在C:\Windows\System32文件夹中,方便使用)
phpstudy下载:http://phpstudy.php.cn/
实现步骤:
1.打开nginx.conf,在http模块配置下,添加upstream模块,代码如下
upstream phpfastcgi_proxy { server 127.0.0.1:9000; server 127.0.0.1:9001; server 127.0.0.1:9002; server 127.0.0.1:9004; server 127.0.0.1:9005; server 127.0.0.1:9006; server 127.0.0.1:9007; }
2.把nginx.conf和vhost.conf中所有虚拟主机的
fastcgi_pass 127.0.0.1:9000
替换为
fastcgi_pass phpfastcgi_proxy;
3.启动phpstudy,运行需要的Nginx版本组合,右键停止,只停止nginx
4.在phpstudy中找到对应php版本php-cgi.exe所在目录,在该目录下创建php-cgi.bat,输入如下内容后双击运行。
php-cgi.bat文件内容:
@echo off REM Windows 下无效 REM set PHP_FCGI_CHILDREN=9 REM 每个进程处理的最大请求数,或设置为 Windows 环境变量 set PHP_FCGI_MAX_REQUESTS=1000 echo Starting PHP FastCGI... RunHiddenConsole php-cgi -b 127.0.0.1:9000 -c php.ini echo Starting PHP FastCGI... RunHiddenConsole php-cgi -b 127.0.0.1:9001 -c php.ini echo Starting PHP FastCGI... RunHiddenConsole php-cgi -b 127.0.0.1:9002 -c php.ini echo Starting PHP FastCGI... RunHiddenConsole php-cgi -b 127.0.0.1:9003 -c php.ini echo Starting PHP FastCGI... RunHiddenConsole php-cgi -b 127.0.0.1:9004 -c php.ini echo Starting PHP FastCGI... RunHiddenConsole php-cgi -b 127.0.0.1:9005 -c php.ini echo Starting PHP FastCGI... RunHiddenConsole php-cgi -b 127.0.0.1:9006 -c php.ini echo Starting PHP FastCGI... RunHiddenConsole php-cgi -b 127.0.0.1:9007 -c php.ini
5.在phpstudy中找到对应php版本php-cgi.exe所在目录,在该目录下创建nginxStart.bat,输入如下内容后双击运行。
nginxStart.bat文件内容:
RunHiddenConsole D:/phpStudy/nginx/nginx.exe -p D:/phpStudy/nginx/
注:D:/phpStudy/nginx/nginx.exe是nginx.exe的文件路径
D:/phpStudy/nginx/是nginx.exe所在文件夹路径
至此phpstudy的Nginx又处于运行状态。
可以测试,打开1.php处于阻塞状态时,打开2.php依旧可以执行。
注意:不能使用phpstudy的重启和启动,那样会重置vhost.conf且php-cgi模块全部关闭,只打开1个127.0.0.1:9000
静水缘首页
刘丕水+宋静静于2007年9月相识于山东理 工大学,毕业后2011年相恋,共甘苦,历 时四年,终于在11月23号拿到了红本本, 组建了自己的小家庭......文章分类
最新文章
- nodejs私钥加密公钥解密的一个例子
- uniapp和微信小程序判断程序运行在开发或者测试或者线上版本的方法分别是什么
- electron使用electron-builder打包后模块包含exe文件执行失败
- Compile is disallowed on the main thread, if the buffer size is larger than 4KB
- better-sqlite3简介及常用操作
- nodejs 操作数据库的库
- nodejs使用http-proxy库实现多个域名代理和同时代理websocket的例子,代理包含https和http两种协议
- iis配置反向代理
- javascript伪多线程代码
- ip所在地址段判断