Nginx 配置信息整理及實驗步驟驗證
Nginx 配置信息整理及實驗步驟驗證
Nginx是一款輕量級的WEB服務器反向代理服務郵件服務器(IMAP/POP3)代理服務器,由俄羅斯的程序設計師Igor Sysoev所開發,其特點是占有內存少,並發能力強,目前應用廣泛。
Nginx基礎
Nginx配置文件個人記錄
USER:定義用戶和組信息
Work_processes :定義核心數量(等於或小於總核心數)
Worker_cpu_affinity cpumask ...; (使用cpumask進行描述標識核心綁定的核心,也可直接設置auto)
CPU MASK:
00000001:0號cpu
00000010:1號cpu
也可直接標識為:
0001:0號cpu
0010:1號cpu
Worker_priority number;(設定worker進程的nice值,提高優先級【-20,19】
Worker_rlimit_nofile number;(worker進程能打開文件的上限)
Error_log
/usr/local/nginx/logs/error.log
info;(定義error_log錯誤日誌它有幾個級別【debug|info|notice|warn|error|crit】其中crit記錄的信息最少,依次向前會獲得更加詳細的錯誤信息
events {
Use epoll; (nginx默認就是epoll模式)
worker_connections 1024; (單個進程最大連接數,根據硬件調整到最佳狀態)
}
Accep_mutex on | off;(處理新的連接請求的方法;on意味由各worker輪流處理請求,off意味著每個新請求的到達都會通知所有的worker進程;
http段描述
Log_format 日誌格式描述,設定輸出的信息內容
Access_log /var/log/nginx/access.log main; (設置訪問日誌輸出的路徑)
Sendfile on;(開啟高效文件傳輸模式)
Tcp_nodelay on | off (在keepalived模式下:off會有延遲 on 將不打包直接發送無延遲)
Tcp_nopush on | off (開啟等待首部一起發送)
Keepalive_timeout 65;(長鏈接超時時間)
Keepalive_requests 100; (一次長鏈接允許請求的資源最大數量,默認100)
Keepalive_disable msie6 (對那種瀏覽器禁用長鏈接)
Send_timeout 60; (發送響應的超時時間)
Include mime.types; (Include載入文件擴展名與文件類型映射表)
Default_type application/octet-srteam; (默認文件類型)
以下是SERVER配置端的描述
Server {
Listen 80;(監聽某個端口或某個地址的某個端口)
Server_name www.stu56.xin;(設置服務器主機名稱)(default_server默認虛擬主機)
Root /web/www/test/; (設置站端根目錄)
Index index.html;(設置默認資源)
}
Location 【 = | ~ | ~* | ^~ 】(在server配置中會有多個location段,用於實現URI到文件系統的路徑映射;nginx會根據用戶請求的URI來檢查定義的所有location,並找出一個最佳匹配,而後應用其配置)
= :對URI做精確匹配;
Location = /admin/ {
...
}
~:對URI做正則表達式模式匹配,區分字符大小寫;
~*:對URI做正則表達式模式匹配,不區分字符大小寫;
^~:對URI的左半部分做匹配檢查,不區分字符大小寫;
不帶符號:匹配起始於此URI的左右URI;
匹配優先級:=,^~,~/~*,不帶符號;
}
Ngx_http_access_module模塊
實現基於ip的訪問控制功能,給網頁設置用戶加密
使用htpasswd 創建密碼文件
-c :創建一個加密文件 -m:默認采用MD5算法加密
設置白名單:放行172.16.250.76 拒絕 172.16.253.162;
設置nginx的狀態status頁面
Ngx_http_gzip_module
Gzip on; 開啟gzip壓縮輸出
Gzip_http_version 1.0; 壓縮版本(默認1.1)
Gzip_comp_level 3;壓縮等級
Gzip_types application/javascript; 壓縮類型,
用文件測試後,會有一定壓縮比例,有助於生產環境中降低帶寬占用
Ngx_http_rewrite_module 將用戶請求的URI基於regex所描述的模式進行檢查,而後完成替換
Rewrite_log on | off (是否開啟重寫日誌記錄)
Ngx_http_referer_module模塊;
Valid_referers none | blocked |server_names | srting...
None :請求報文首部沒有referer首部;
Blocked:請求報文的referer首部沒有值
Server_names:參數,其可以有值作為主機名或主機名模式;
Arbitrary_string: 直接字符串,但可以用*作通配符
Reqular expression :被指定的正則表達式模式匹配到的字符串:要用~打頭,例如~.*\.magedu\.com;
以下是利用referers模塊做的防盜鏈功能:
已經有配置好的倆臺機器
在進行測試的盜鏈機器上插入一段另一臺機器的圖片鏈接
為限制前圖片可以正常顯示
以下是對server進行配置 加入referers項進行匹配,匹配到的進行路徑重寫,也可以直接做return返回錯誤
以下是測試的信息
Ngx_http_ssl_module
在nginx上做https加密訪問
Ssl on | off 開啟或者關閉https
這裏配置保留80與443端口,保證http與https同時可以工作,所以對ssl on進行了註銷;
Ssl_certiflcate_file; 當前虛擬主機使用pem格式文件
Ssl_certificate_kye ; 當前虛擬主機上與其證書匹配的私鑰文件;
Ssl_prottocols sslv3 ; 設置ssl協議版本,默認為“tlsv1,tlsv1.1,tlsv1.2”
Ssl_session_cache off | none | builtin[:size] | [shard:name:size] 設置ssl緩存類型
Builtin[:size]:使用openssl 內建的緩存,此緩存為每個worker進程私有
[shared:name:size]:在各worker之間使用一個共享的緩存
(其中共享的緩存效率更高)
Ssl_session_timeout ; (客戶端一側的連接可以復用ssl_session_cache中緩存的ssl參數的有效時長)
Nginx 配置信息整理及實驗步驟驗證