台式机配置:双核4G内存 VM开了三个虚拟机:一个做nginx服务器,设memory1G,ip:10.10.21.134;两个做web服务器,使用的是自己装的Q2A网站,memory都是1G,ip分别为:10.10.21.135,10.10.21.138 nginx.conf主要内容: worker_processes 2; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; #均衡 upstream webservers{ server 10.10.21.135 max_fails=3 fail_timeout=1s weight=1; server 10.10.21.138 max_fails=3 fail_timeout=1s weight=1; server 127.0.0.1:8080 backup; #缓存 proxy_cache_path /nginx/cache/first levels=1:2:1 keys_zone=a:20m max_size=1g; server { listen 80; server_name localhost; location / { proxy_pass http://webservers/; proxy_set_header X-Real-IP $remote_addr; proxy_connect_timeout 300; proxy_read_timeout 300; proxy_send_timeout 300; proxy_cache a; #js与css请求 location ~.*\.(gif|jpg|jpeg|png|bmp|swf|css|js)$ { proxy_pass http://10.10.21.135; } } } apache2.conf的最主要配置: Timeout 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 15 <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 6 ServerLimit 550 MaxClients 500 MaxRequestsPerChild 10000 </IfModule> HostnameLookups Off 使用webbench做测试时,60S并发1000时基本均衡,漏掉的请求也不是很多,60S并发1500做测试时,使用grep 'GET /' /var/log/nginx/access.log | grep '15/Sep/2014:19'|wc -l 命令对access.log做计算时结果如下: nginx服务器: ![]() 两个web: ![]() ![]() 结果漏了很多请求 error.log内容: nginx:2014/09/15 19:30:04 [error] 29561#0: *7668 connect() failed (110: Connection timed out) while connecting to upstream, client: 10.10.21.137, server: localhost, request: "GET / HTTP/1.0", upstream: "http://10.10.21.135:80/", host: "10.10.21.134" 135服务器: [error] [client 10.10.21.134] PHP Notice: session_start(): ps_files_cleanup_dir: opendir(/var/lib/php5) failed: Permission denied (13) in /var/www/question2answer/qa-include/qa-app-users.php on line 150 138服务器: [error] [client 10.10.21.134] request failed: error reading the headers 难道这就是极限了吗?还是我的配置数据有问题啊? 怎样优化nginx的配置呢? 寻求这位的帮助~~ |
|