当前位置: 代码迷 >> 应用服务器 >> windows 下 php+nginx 并发上不去,求解决方法
  详细解决方案

windows 下 php+nginx 并发上不去,求解决方法

热度:5310   发布时间:2013-02-26 00:00:00.0
windows 下 php+nginx 并发上不去,求解决办法
RT
目前 ,当并发达到20 之后, 打开php 页面将会变得很慢,再多了 ,就彻底 报 500 了。这个时候,系统的cpu 跟 内存 并且都不高
下面是nginx 的配置文件:
PHP code
worker_processes  1;error_log  logs/error.log crit;pid        ../data/nginx.pid;events {    worker_connections  1024;}http {    include       mime.types;    default_type  application/octet-stream;    access_log off;    # log_format processtime '"$request" $status $request_time ';    # access_log  logs/access.log processtime;    sendfile        on;    #tcp_nopush     on;    #keepalive_timeout  0;    keepalive_timeout  120;    #gzip  on;    server {        include port.conf;        client_max_body_size    20m;        rewrite ^/netcenter/(.+)$ /$1;        rewrite ^/(.+)\.(asmx|aspx)$ /$1.php;        location / {            include root.conf;        }        location = / {            include root.conf;            fastcgi_pass   127.0.0.1:9000;            fastcgi_index  index.php;            fastcgi_param  SCRIPT_FILENAME index.php;            include        fastcgi_params;        }        location ~* \.(php|asmx|aspx)$ {            include root.conf;            fastcgi_pass   127.0.0.1:9000;            fastcgi_param  SCRIPT_FILENAME $fastcgi_script_name;            include        fastcgi_params;        }    }}


哦 ,补充一下 ,希望达到的并发 至少 应该在200以上的 ~ 这个要求应该不高啊

------解决方案--------------------------------------------------------
如何Nginx限制同一个ip的连接数,限制并发数目

1.添加limit_zone 
 这个变量只能在http使用 
 vi /usr/local/nginx/conf/nginx.conf 
 limit_zone ctohome_zone $remote_addr 10m;

2.添加limit_conn 
 这个变量可以在http, server, location使用 
 我只限制一个站点,所以添加到server里面 
 vi /usr/local/nginx/conf/host/www.ctohome.com.conf 
 limit_conn ctohome_zone 2;

3.重启nginx 
 killall -HUP nginx

Nginx限制流量/限制带宽?

 关于limit_zone:http://wiki.nginx.org/NginxHttpLimitZoneModule 
 关于limit_rate和limit_conn:http://wiki.nginx.org/NginxHttpCoreModule 
 nginx可以通过HTTPLimitZoneModule和HTTPCoreModule两个组件来对目录进行限速。

 http { 
limit_zone one $binary_remote_addr 10m;
server { 
location /download/ { 
limit_conn ctohome_zone 2; 

limit_rate 300k; 


 }

 limit_zone,是针对每个IP定义一个存储session状态的容器。这个示例中定义了一个10m的容器,按照32bytes/session,可以处理320000个session。

 limit_conn ctohome_zone 2;
 限制每个IP只能发起2个并发连接。

 limit_rate 300k;
 对每个连接限速300k. 注意,这里是对连接限速,而不是对IP限速。如果一个IP允许两个并发连接,那么这个IP就是限速limit_rate×2。
 ngx_http_limit_zone_module
------解决方案--------------------------------------------------------
我用nginx的时候总是不稳定,搞了很久没弄好,后来用apache做服务器,nginx做的反向代理。
  相关解决方案