你能帮我解释一下使用Nginx的情况吗?
Nginx配置:
worker_processes 1;
worker_rlimit_nofile 1000;
// ...
worker_connections 1024;
multi_accept on;
use epoll;
location /test_nginx {
module_test_nginx;
}
location /test_fcgi {
fastcgi_pass 127.0.0.1:8080;
include fastcgi_params;
}
module_test_nginx是我的模块,如果请求有参数然后返回" Hello World"
,它会睡几秒钟我建立了2个并发连接(1个来自FireFox,1个来自Chrome)
来自FireFox的第一个请求:localhost / test_nginx?sleep = 5 - >浏览器 显示" Hello World" 5秒后
来自Chrome的第二个请求:localhost / test_nginx?sleep = 1 - >该 浏览器显示" Hello World"等待第一个请求5秒后,睡眠参数为1秒
我将worker_processes更改为2,然后:
来自FireFox的第一个请求:localhost / test_nginx?sleep = 5 - >该 浏览器显示" Hello World" 5秒后
来自Chrome的第二个请求:localhost / test_nginx?sleep = 1 - >该 浏览器显示" Hello World" 1秒后FireFox仍在加载
此测试显示module_test_nginx阻止了第二个请求,直到第一个请求完成。
我写了#34; Hello World" Fcgi程序类似于module_test_nginx但在池中有2个线程(我使用spawn-fcgi运行它,端口8080)
我设置了worker_processes = 1,然后:
来自FireFox的第一个请求:localhost / test_fcgi?sleep = 5 - >该 浏览器显示" Hello World" 5秒后
来自Chrome的第二个请求:localhost / test_fcgi?sleep = 1 - >浏览器 显示" Hello World" 1秒后(FireFox仍在加载时)
所以我认为使用fastcgi_pass的Nginx可以通过module_test_nginx为Nginx提供更多客户端
感谢阅读,请帮我解释一下:)