nginx 優化

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章