公开 内部公开 机密 绝密√
enableLookups: 是否反查域名,默认值为true。为了提高处理能力,应设置为false connnectionTimeout: 网络连接超时,默认值60000,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。 maxKeepAliveRequests: 保持请求数量,默认值100。 bufferSize: 输入流缓冲大小,默认值2048 bytes。 compression: 压缩传输,取值on/off/force,默认值off。 其中和最大连接数相关的参数为maxThreads和acceptCount。如果要加大并发连接数,应同时加大这两个参数。 web server允许的最大连接数还受制于*作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。 2.4.3 apache服务器优化
加大并发数量和关闭不需要的模块。因为apache非常消耗内存,尽量轻量化。
Apache在配置ContentType的时候可以尽量少支持,尽可能少的LoadModule,保证更高的系统消耗和执行效率
同时配置apache和tomcat的组合使之能作到动静分离,apache处理静态页面,tomcat处理动态页面。 在处理静态页面或者图片、js等访问方面,可以考虑使用lighttpd代替Apache,它提供了更轻量级和更高效的处理能力
2.4.4 Nginx服务器的优化
worker_processes:该参数的值最好跟cpu核数相等,能够发挥最大性能,如果nginx所在服务器为2颗双核cpu,则建议设定为4。
3 Web服务架构评测
主要对基于tomcat和nginx+tomcat的web服务器的处理性能进行测试,以作为不同性能要求下架构选型的依据
3.1 测试环境
3.1.1 网络环境 1. 内网带宽 ? 千M内网。
? 内网ping包延迟:< 0.1ms
第25页,共39页Page 25 , Total39
4/4/2013
版权所有,侵权必究All rights reserved
公开 内部公开 机密 绝密√
2. 网络拓扑示意
WEB服务高可用测试网络示意图千兆交换机测试服务器WEB服务192.168.131.19test1192.168.131.61test2192.168.131.60:81192.168.131.57Tomcat1Nginx服务端192.168.131.56Tomcat2 3.1.2 服务器配置
设备 Nginx 硬件配置 IBM X3650 CPU: Intel(R) Xeon(R) E5150 2.66GHz 2核*2 内存:4G 千兆网卡 操作系统 Redhat linux as4 Tomcat1 Hp DL580 G4 CPU: Intel(R) Xeon(TM) 3.40GHz 4核*2 内存:8G 千兆网卡 Redhat linux as5 Tomcat2 Hp DL580 G4 CPU: Intel(R) Xeon(TM) 3.40GHz 4核*2 内存:8G 千兆网卡 Redhat linux as5 Test1 Hp DL580 G5 CPU:Intel(R) Xeon(R) E7310 1.60GHz 4核*2 内存:4G 千兆网卡 IBM X3650 CPU: Intel(R) Xeon(R) E5150 2.66GHz 2核*2 内存:4G 千兆网卡 Redhat linux as5 Test2 Redhat linux as4 4/4/2013
版权所有,侵权必究All rights reserved
第26页,共39页Page 26 , Total39
公开 内部公开 机密 绝密√
3.1.3 软件环境 1. 操作系统网络参数优化
用做测试的各台服务器,均在/etc/sysctl.conf配置文件中增加如下内核参数: net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_fin_timeout = 5 2. Nginx设置 主要配置如下: user www www; worker_processes 4;
error_log /usr/local/nginx/logs/nginx_error.log debug; pid /usr/local/nginx/logs/nginx.pid; worker_rlimit_nofile 51200; events {
use epoll;
worker_connections 51200; } http {
include mime.types;
default_type application/octet-stream; #charset gb2312;
server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k;
sendfile on; tcp_nopush on; keepalive_timeout 1; tcp_nodelay on; #gzip on;
#gzip_min_length 1k; #gzip_buffers 4 16k;
4/4/2013
版权所有,侵权必究All rights reserved
第27页,共39页Page 27 , Total39
公开 内部公开 机密 绝密√
#gzip_http_version 1.0; #gzip_comp_level 2;
#gzip_types text/plain application/x-javascript text/css application/xml; #gzip_vary on; upstream tomcats {
server 192.168.131.57:8081; server 192.168.131.56:8081; # server 192.168.131.61:8080; } server {
listen 81;
server_name localhost; proxy_redirect off;
location / {
proxy_pass http://tomcats; }
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP # proxy_set_header X-Forwarded-For $remote_addr; # location / {
# if ($request_uri ~* \ # {
# proxy_pass http://squid.abc.com; # }
# if ($request_uri ~* \ # {
# proxy_pass http://squid.abc.com; # }
# proxy_pass http://web.abc.com; #}
#定义日志格式
log_format access '$remote_addr - $remote_user [$time_local] $request ' '\ '\
4/4/2013
版权所有,侵权必究All rights reserved
第28页,共39页Page 28 , Total39