nginx常見問題
nginx優化主要從配置檔案著手,常見優化引數如下:
worker_processes //與cpu核心數量一致
worker_connections //每個worker最大併發連線數
server_tokens //伺服器版本號資訊
client_header_buffer_size //預設請求包頭資訊的快取
large_client_header_buffers //大請求包頭部資訊的快取個數與容量
error_page 404 //自定義404錯誤頁面
常見壓力測試工具
ab(光碟自帶):ab
-c併發數
-n總請求數
url
例:ab -c 000 -n 1000
http_load:http_load -p 併發數 -s 測試時間 url
webench:we
bench -c 併發數 -t 測試時間 url
siege:siege -c 併發數 -r 重複次數 url
全域性配置優化(vim /usr/local/nginx/conf/nginx.conf)
1.使用ab高併發測試:# yum -y install httpd-tools
#ab –n 2000 –c 2000
(伺服器報錯too many open files) //提示開啟檔案數量過多,預設併發量1024
調整程序數量:worker_processes 2; //與cpu核心數量一致# cat /proc/cpuinfo
//1核預設併發1024
error_log /var/log/nginx.error_log info; //定義日誌級別
//[debug/info/notice/warn/error/crit]
event模組優化:max_clients=worker_processes * worker_connections
注意修改系統ulimit限制/etc/security/limits.conf
events內)
1.顯示版本號# curl -i (檢視伺服器資訊-暴露版本資訊)
2.測試長頭部請求是否能獲得響應
#!/bin/bash
url=index.html?
for i in
dourl=$v$i=$i
done
curl $url
[root@proxy~]# chmod +x buffer.sh
[root@proxy~]# ./ buffer.sh //414 request-uri too large 提示頭部資訊過大
3.client----server[誰訪問了什麼內容,什麼時候訪問的,用的什麼瀏覽器……]
瀏覽器:選單--》開發者選項--》網路,可抓包,使伺服器知道客戶知道你瀏覽了什麼內容
4.壓縮。nginx(頁面)需要壓縮:1.300k-->30k速度變快;2.300k-->30k手機省流量
**壓縮統一都使用gzip,所有瀏覽器都支援gzip解壓
*** jpg mp4 png gif都是已壓縮過的,不能再壓縮。文件均可壓縮
檢視各檔案格式對應的型別:vim /usr/local/nginx/conf/mime.types 5.
返回自定義的報錯頁面
#cd /usr/local/nginx/html #
echo "**崩潰了" > 404.html
http //為客戶端瀏覽器快取資料30天
//測試:#find / -name "*.jpg" #cp xx.jpg /usr/local/nginx/html/x.jpg
client_header_buffer_size 1k; //預設請求包頭資訊的快取
large_client_header_buffers4 4k; //大請求包頭部資訊的快取個數與容量,工作時可用此條命令,但此處不用1m,極端情況
//先根據client_header_buffer分配,如果不夠,再根據large值分
charset utf-8;
//萬國語言
error_page 404 400 /404.html;
//自定義錯誤頁面
open_file_cache max=2000 inactive=20s;
open_file_cache_valid 60s;
open_file_cache_min_uses 5;
open_file_cache_errors off;
//設定伺服器最大快取2000個檔案控制代碼,關閉20秒內無請求的檔案控制代碼
//檔案控制代碼的有效時間是60秒,60秒後過期
//只有訪問次數超過5次會被快取
http錯誤**
http常見錯誤**列表
返回碼
描述
一切正常
請求語法錯誤
訪問被拒絕(帳戶或密碼錯誤)
資源不可用,通常由於伺服器上檔案或目錄的許可權設定導致
無法找到指定位置的資源(not found)
請求url頭部太長,快取不夠
伺服器內部錯誤
伺服器作為閘道器或者**時,為了完成請求訪問下乙個伺服器,但該伺服器返回了非法的應答(bad gateway)
nginx如何返回錯誤頁面
遇到訪問錯誤時,處理錯誤**你還有別的選擇
盜鏈結youku,letv,aiqiyi,tudou
防止盜鏈
http頭部資訊
referer:我從**來
www.sina.com
referer:www.sina.com
鏈結www.sina.com
判斷referer是不是www.sina.com
rewrite ^/
防盜煉
http請求頭部資訊:http referer是header的一部分,當瀏覽器向web伺服器傳送請求的時候,一般會帶上referer,告訴伺服器我是從哪個頁面鏈結過來的,伺服器藉此可以獲得一些資訊使用者處理
防盜煉語句 /usr/local/nginx/conf/nginx.conf
none表示沒有referer,也就是直接訪問,比如直接在瀏覽器開啟乙個
blocked表示有referer,但內容被防火牆或**刪除
server_names就是最後的網域名稱,可以使用*.tarena.com來表示二級網域名稱
nginx常見問題
1 顯示的錯誤資訊是 413 request entity too large 原因是請求實體太長了。一般出現種情況是post請求時body內容post的資料太大了,如上傳大檔案過大 如post資料比較多 在伺服器的 etc nginx目錄中找到nginx.conf 找到http 段,修改或增加 c...
Nginx常見問題
1.在 apache 的寫法 rewritecond nginx.org rewriterule 在 nginx 可以對應寫成 server 但 nginx 作者更建議的方法是 server server f q 1.請教一下,nginx的rewrite規則怎麼寫?比如將 http rewrite為...
nginx常見問題
netdata 19999 lets chat 8000 shipyard 80 是nginx自己的埠,做 location netdata記住proxy pass 位址的最後乙個斜槓是關鍵 訪問 netdata bbb時,如果代 位址最後有 那麼會 到 訪問 netdata bbb時,如果代 位址...