Nginx有多线程FCGI

时间:2014-11-19 11:33:20

标签: multithreading nginx fastcgi

你能帮我解释一下使用Nginx的情况吗?

  1. 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;
    }
    
  2. module_test_nginx是我的模块,如果请求有参数然后返回" Hello World"

    ,它会睡几秒钟

    我建立了2个并发连接(1个来自FireFox,1个来自Chrome)

  3.   

    来自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阻止了第二个请求,直到第一个请求完成。

    1. 我写了#34; Hello World" Fcgi程序类似于module_test_nginx但在池中有2个线程(我使用spawn-fcgi运行它,端口8080)

      我设置了worker_processes = 1,然后:

    2.   

      来自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提供更多客户端

      1. 我进行了一些加载测试:ab,siege具有相同的并发连接,总连接数... FireFox上的Url 1:localhost / test_nginx Chrome上的网址2:localhost / test_fcgi 两个链接都立即返回,没有睡眠。 但所有测试都表明,使用module_test_nginx的Nginx比使用fastcgi_pass(超过3或4次)的Nginx每秒的结果要求更好
      2. 感谢阅读,请帮我解释一下:)

0 个答案:

没有答案