台式机配置:双核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的配置呢?
寻求这位的帮助~~