nginx調優:javascript
main 全局設置 全部區域都生效 server 主機設置 uptream 負載均衡服務器設置 設置後端服務器的 location URL匹配特定位置的設置 匹配網頁 關係: server繼承main location繼承server upstream既不傳也不繼承
調整內核參數:css
vim /etc/sysctl.conf 這裏面調
net.ipv4.tcp_max_tw_buckets = 6000 //時間等待計時器(堅持,保活,重傳) net.ipv4.ip_local_port_range = 1024 65000 //開啓隨機端口的數量32768-65535 net.ipv4.tcp_tw_recycle = 1 //時間等待計時器加速回收 net.ipv4.tcp_tw_reuse = 1 //時間等待計時器複用 net.ipv4.tcp_syncookies = 1 //syn溢出用cook處理 net.core.somaxconn = 262144 //同時發起tcp的鏈接數量 net.core.netdev_max_backlog = 262144 //網絡收口接包速度,表示列隊長度 net.ipv4.tcp_max_orphans = 262144 //設置系統中有多鏈接同時鏈接到個人,防止簡單的ddos net.ipv4.tcp_max_syn_backlog = 262144 //還沒有收到客戶端確認消息的鏈接的請求,128M內存=1024 net.ipv4.tcp_synack_retries = 1 //表示內核放棄鏈接以前,syn+ack的包的總量 net.ipv4.tcp_syn_retries = 1 //放棄鏈接以前syn的總量 net.ipv4.tcp_fin_timeout = 1 //最後時間等待計時器的超時時間 net.ipv4.tcp_keepalive_time = 30 //消息發送的頻度(單位:小時)
防盜鏈:html
在server模塊下 第一種方法:(zip和rar是必須寫的) location ~* \.(jpg|png|gif|flv|zip|rar){ valid_referers none blocked *.han.com *.han.cn; if ($invalid_referer) { rewrite ^/ http://www.han.com/img/error.gif;//當引用了個人圖片就把你引到個人錯誤的圖片 #return 403; //地址重寫 } } 第二種方法: location /images { root /web/www/han.com vaild_referers none blocked *.han.com *.han.cn; if ($invalid_referer) { return 403; } }
Fastcgi調優:前端
fastcgi的調優必須在http模塊裏面!!! fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10minactive=5m; ///usr/local/nginx/fastcgi_cache 硬盤路徑 leves 目錄結構等級 keys_zone關鍵字存儲的區域 inactive非活動的刪除時間分鐘 fastcgi_connect_timeout 300; 鏈接到後端的超時時間(防火牆new包) fastcgi_send_timeout 300; 完成握手以後已經創建鏈接,傳送請求的時間 fastcgi_read_timeout 300; 後端服務器收到的應答的時間,沒有迴應 fastcgi_buffer_size 64k; 應答信息的第一個應答包頭,第二個包開始纔是數據 fastcgi_buffers 4 64k; 應答請求,請求頁面的大小。PHP產生的頁面256k把這個數據分紅4個64k來存儲; 300k剩下的44k放到fastcgitemp。取中上值 fastcgi_busy_buffers_size 128k; 當繁忙的時候臨時開一個空間是前面的2倍就能夠 fastcgi_temp_file_write_size 128k; 寫入緩存文件時緩存快的大小 指定頁面代碼的緩存時間: fastcgi_cachek TEST; 緩存名稱 表示開啓 fastcgi_cache_valid 200 302 1h; 指定應答代碼的緩存時間 fastcgi_cache_valid 301 1d; 指定應答代碼的緩存時間 fastcgi_cache_valid any 1m; 指定應答代碼的緩存時間
proxy四層代理:動態調優java
location / { proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header; proxy_redirect off; proxy_set_headeer HOST $host; #設置後端服務器的真實IP地址 proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded_For &proxy_add_x-forwarded_for; client_body_buffer_size 128k; #頁面緩衝區的大小,本地保存的大小 proxy_connect_timeout 90; 後端服務器發起握手等候響應的時間 proxy_rend_timeout 90; 創建鏈接後等待後端服務器響應時間/後端等候處理的時間 proxy_sead_timeout 90; 規定時間內後端服務器必須響應,不然斷開 proxy_buffer_size 4k; proxy_buffers 4 32; 緩衝區個數和大小 proxy_busy_buffers_size 64k; 系統繁忙時buffer的臨時大小,官方要求proxy_buffers*2 proxy_temp_file_write_size 64; proxy臨時文件的大小 }
Gzip:python
#傳遞數據的時候須要打個包,這樣會讓零碎的數據打包成一個包,增長咱們的傳輸速度 #--http_gzip_static_module 加這個模塊就能夠實現數據的整合和打包 gzip on; gzip_min_length 1k; #設置壓縮的頁面你的最小字節數(公司頁面最小值就行) gzip_buffers 4 16k; #表示申請4個16k空間來壓縮的緩存 gzip_http_version 1.1; #用來識別http的版本 gzip_comp_level 2; #用來指定gzip壓縮級別(1最小壓縮比率 效率高,9最大壓縮比率,效率低) gzip_types text/plain application/x-javascript text/css application/xml; #用來指定壓縮類型(默認使用的html類型) gzip_vary on; #讓前端緩存服務器緩存,通過壓縮後的數據(Varnish,Nginx-cache,Squid)
events模塊:linux
events { worker_connections 8192; #nginx 中每一個進程最大的處理鏈接數量 只能是2的次方數 use epoll #使用epoll網絡模型 } 網絡模型: epoll:linux內核爲處理大批量文件描述符 select \poll 標準模式 kqueue \poll 高性能模式 BSD用kqueue linux用poll rtsin\ /dev/poll 高性能模式