Nginx常見問題

2021-08-09 13:27:00 字數 3632 閱讀 5941

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時,如果代 位址...