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 不修改會拖死服務器