nginx + tomcat 集群记录
昨天晚写的时候已经下班了、时间紧迫、写的略简!
昨天说过、接到部署的任务之后、首先想到的是apache httpserver 毕竟pache、我们接触的比较多!然而部署之后遇到了很多问题、比如apache并发访问在500左右的时候就会崩溃、而我确实是进行过优化的!下面是apache的简单优化:首先我们要确认一下apache的工作模式,我启动apache!命令进入apache的安装目录打印命令如图
可以看到在我的电脑上 采用的是 mpm_winnt 工作模式!去apache 安装目录找到conf/httpd.conf 启用 mpm.conf 默认是注释的!昨天tomcat+apache部署的时候已经讲过:打开mpm.conf配置文件,找到如下一段代码:
# WinNT MPM # ThreadsPerChild: constant number of worker threads in the server process # MaxRequestsPerChild: maximum number of requests a server process serves <IfModule mpm_winnt_module> ThreadsPerChild 2000 MaxRequestsPerChild 10000 </IfModule>
这里面有两个参数
- threadsperchild 理解意思是 子进程的线程数!
- maxrequestsperchild 子进程的最大请求数
我按如上图设置、不知道为什么总是达不到并发要求! 然后我就去看官方文档、发现apache windows版本非常少、且都32位.为保个安心 我转而研究nginx!
软件:nginx 1.80 tomcat7 jre7
一、首先查阅文档、他人经验!然后我就有点不好的预感、官方文档对windows下部署有这样一句提示:version of nginx for windows,only the select() connection processing method is currentl used ,so high performance and scalability shoud be not expected! 但是我又想:nginx 5W 50W都不在话下了 我只要3000而以 该是对它无压力吧!
二、安装 配置nginx.conf 一共配置了3处、nginx 入手简单!
upstream localhost{
server 192.168.0.59:8081;
server 192.168.0.129:8081;
ip_hash;
}
worker_processes 8;
#pid logs/nginx.pid;
events {
worker_connections 38000;
}
location / {
# root html;
# index index.html index.htm;
proxy_pass http://localhost;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 50m;
client_body_buffer_size 256k;
proxy_connect_timeout 1;
proxy_send_timeout 30;
proxy_read_timeout 60;
proxy_buffer_size 256k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
proxy_max_temp_file_size 128m;
}
三、一样配置tomcat
四、启动测试 session采用 id-hash 没有问题、然而并发是个悲剧!