Nginx 反向代理 突破10万高并发配置: 服务器配置: 4G内存 Intel(R) Xeon(R) CPU E5504 @ 2.00GHz 4核 #####


一:新服务器底层优化


1.关闭selinux iptables


2.关闭tty终端 留一个到2个足够


3. history历史记录默认1000个修改为100个或者更少 ----------修改/etc/profile HISTSIZE参数的值


4. 关闭ipv6 -------------编辑/etc/modprobe.conf文件,加入alias net-pf-10 off和alias ipv6 off 重启即可


7. 关闭不需要的服务


8. 设置ulimit最大化,修改ulimit最大文件限制


9. 如果磁盘对访问时间不太关注,可以关闭磁盘的atime


10.更改gurb等待时间


11.修改bios关闭虚拟化与RAID功能


——————————————————————————————————————————————————————————


二:Nginx基本优化反向代理后端(Tomcat weblogic cgi)


1. Nginx.org下载稳定包


2. 最小化编译 ./configure --prefix=/usr/local/nginx --user=www --group=www --with-pcre=/usr/local/pcre


3. 充分利用Nginx的Gzip压缩功能


4. 充分利用Nginx的cache功能 cache功能尽量放到 /dev/shm 虚拟内存读取速度远远超越固态硬盘的速度。


5. 充分利用Nginx的keepalive功能,高并发的情况下启用可以大量减少timeout 参数用在upstream模块


6.Nginx的rewrite中尽量少用,最好不用permanent的外部跳转


7.通过全局变量的include将所以域名重写到一个目录下,更好优化,配置


8.充分利用Nginx的expires,基于客户端的浏览器的缓存,这样下次访问缓冲更快. (适用于纯静态)


9. 对动态不经常发生改变的$uri进行缓存,减轻对后端的压力


三:对内核sysctl.conf基本优化如下:说明几个重要的参数


root@SH-NginxWeb01:/usr/local/nginx/conf/vhost# cat /etc/sysctl.conf |grep -v ^#.*|awk NF

net.ipv4.tcp_syncookies=1 减少time_wait cookie处理

kernel.shmmni = 10240

kernel.sem = 250 32000 100 128

net.ipv4.conf.default.rp_filter = 1

net.ipv4.conf.default.accept_source_route = 0

kernel.sysrq = 0

fs.file-max = 1213051

kernel.core_uses_pid = 1

net.ipv4.tcp_syncookies = 1

kernel.msgmnb = 65536

kernel.msgmax = 65536

kernel.shmmax = 68719476736

kernel.shmall = 4294967296

net.core.somaxconn = 65535

net.ipv4.tcp_max_syn_backlog = 262144 #这个数字能够容纳更多的链接。

net.ipv4.tcp_synack_retries = 3

net.ipv4.tcp_keepalive_intvl = 30

net.ipv4.tcp_keepalive_probes = 3

net.ipv4.tcp_syn_retries=3 基于三次握手建立会话关系

net.ipv4.tcp_keepalive_time = 10 高并发的情况下时间不要太大,不然会影响并发的数量

net.ipv4.tcp_fin_timeout = 10

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.ip_local_port_range = 1024 65500 端口范围最大化

net.ipv4.tcp_max_tw_buckets = 10240 time_wait 模式18w 修改为8000到10K 不修改会拖死服务器