🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Nginx+tomcat集群 ## 一.概述 Nginx 是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性:在高连接并发的情况下,Nginx是Apache服务器不错的替代品,能够支持高达 50,000 个并发连接数的响应。 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,利用nginx高并发等特性,可以实现tomcat服务器集群的负载均衡。 ## 二.优点 提高单个服务器处理业务的性能,把镜头请求交给nginx处理,而动态则分发到tomcat服务器群,实现动态分离,减轻服务器的压力 提高系统的稳定性,当集群中有一台机器出现故障时,会把请求分发到其他服务器,系统不会因此瘫痪 提高系统的并发能力,nginx可以并发几万个连接,而且把动态业务分发到tomcat服务器,大大提高服务器的处理效率 ### 三,架构图 ![](https://box.kancloud.cn/9118c344dc517c1d0cdcadf8f03a72c2_643x660.png) 分析: 从图中我们可以看出影响系统性能的主要有两个方面:1.nginx负载均衡服务器 2.tomcat服务器,其中nginx服务器的性能决定了整个系统的性能,因此我们要优化nginx服务器,使其可以处理更多的请求,其次,tomcat服务器的性能决定了处理业务的速度,从而间接提高nginx服务器的处理能力。 ## 四.Nginx服务器的搭建与优化 1.安装 直接解压,并运行nginx.exe,打开http://localhost/即可访问 2.性能监听 开启性能监听模块,便于我们观察服务器的状态 在nginx.conf里的server段里增加 location /status { stub_status on; access_log logs/status.log; auth_basic "NginxStatus"; } 访问http://localhost/status 其中Active connections 表示当前连接数 Waiting表示当前等待连接数 优化的结果就是尽可能地提高当前的连接数,也就是并发数 3.配置优化 #开启4个工作进程,与cpu等同 worker_processes 4; #设置nginx能打开的最大文件数 worker_rlimit_nofile 10240; #每个进程可以支持的最多线程数 worker_connections 10240; #关闭日志 access_log off; #启用内核复制模块,保持最大的io效率 sendfile on; #提高并发效率 keepalive_timeout 40; #配置服务器群 upstream myappserver{ server 127.0.0.1:8080 max_fails=2 ; server 127.0.0.1:8081 max_fails=2 ; server 127.0.0.1:8082 max_fails=2 ; } #开启压缩 gzip on; gzip_http_version 1.1; gzip_vary on; gzip_comp_level 6; gzip_min_length 1000; gzip_proxied any; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/x-httpd-php image/jpeg image/gif image/png; gzip_buffers 16 8k; gzip_disable "MSIE [1-6]\."; #优化fastcgi fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 128k; #指定该目录跳转到集群 location /myapp{ proxy_pass http://myappserver; proxy_redirect default; } 注:经过测试在windows上nginx最多只能保持1024个连接,也就是最多只能同时处理1024个请求,原因应该是系统限制,如tcp/ip的连接数,同时打开的文件数 ## 五.Tomcat的搭建与优化 1.开启status监控 修改配置文件tomcat-users(该文件在Tomcat安装程序根目录中的conf文件夹中),添加一个admin设置权限,在<tomcat-users>中添加的内容如下: <role rolename="admin-gui"/> <user username="admin" password="1234" roles="manager-gui"/> 2.配置与优化 提高处理请求的能力 acceptCount="2000" 最大处理并发数 maxThreads="3000" 最多开启3000个线程 minSpareThreads="200" 最小空闲线程数 maxSpareThreads="500" 最大空闲线程数 优化内存 JAVA_OPTS='-Xms1024m -Xmx2048m -XX:PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m' 缓存优化 compression="on" compressionMinSize="2048" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"