nginx配置方式(反向代理、限速、url重寫)
nginx反向代理
- 正向代理:代理用戶上網(wǎng),當多個用戶訪問一個網(wǎng)站時,服務器只需要緩存一份即可
- 反向代理:代理服務器,以虛擬主機方式,一個ip對應多個主機
- 應用場景:堡壘機場景,內(nèi)網(wǎng)服務器發(fā)布場景,緩存場景
- CDN緩存服務器:緩存靜態(tài)數(shù)據(jù),動態(tài)請求由緩存服務器當代理服務器向業(yè)務服務器拿,減小業(yè)務服務器壓力
代理服務器實現(xiàn)
location / { proxy_pass http://139.199.32.236:8080 }
使用proxy_pass字段,后面是業(yè)務服務器.
每次訪問服務器根目錄時,自動找業(yè)務服務器獲取數(shù)據(jù)
其他字段
請求頭,業(yè)務服務器可以從代理服務器上看到客戶端信息
nginx限速
保護磁盤IO
限速原理
緩存請求、勻速處理、多余請求直接丟棄
限速實現(xiàn)
limit_req_zone
:用來限制單位時間內(nèi)的請求數(shù),即速率限制limit_req_conn
:用來限制同一時間連接數(shù),即并發(fā)限制
代碼
1.limit_req_zone 限制請求數(shù)
limit_req_zone
限制請求數(shù)(限速)limit_req_conn
限制連接數(shù)(訪問數(shù)) 并發(fā)數(shù)
2.限制下載個數(shù)和下載速度
limit_req_zone $binary_remote_addr zone=baism:10m rate=1r/s; limit_conn_zone $binary_remote_addr zone=addr:10m; server { listen 80; server name localhost; location / { root html; index index.html index.htm } location /abc { limit_req zone=baism burst=5 nodelay; limit_conn addr 1; limit_rate 100k; limit_rate_after 100m; } }
請求數(shù)不能超過1個
下載到100m就會限速到100kb/s
limit_conn_zone;
設置桶limit_conn addr 1;
設置連接數(shù)limit_rate 100k;
設置下載速率
nginx限速
保護磁盤IO
限速原理
緩存請求、勻速處理、多余請求直接丟棄
限速實現(xiàn)
limit_req_zone
:用來限制單位時間內(nèi)的請求數(shù),即速率限制limit_req_conn
:用來限制同一時間連接數(shù),即并發(fā)限制
代碼
1.limit_req_zone 限制請求數(shù)
limit_req_zone
限制請求數(shù)(限速)limit_req_conn
限制連接數(shù)(訪問數(shù)) 并發(fā)數(shù)
2.限制下載個數(shù)和下載速度
limit_req_zone $binary_remote_addr zone=baism:10m rate=1r/s; limit_conn_zone $binary_remote_addr zone=addr:10m; server { listen 80; server name localhost; location / { root html; index index.html index.htm } location /abc { limit_req zone=baism burst=5 nodelay; limit_conn addr 1; limit_rate 100k; limit_rate_after 100m; } }
請求數(shù)不能超過1個
下載到100m就會限速到100kb/s
limit_conn_zone;
設置桶limit_conn addr 1;
設置連接數(shù)limit_rate 100k;
設置下載速率
nginx實現(xiàn)url重寫rewrite
將用戶在地址欄輸入的地址重新編輯。
作用場景:域名變更、用戶跳轉(zhuǎn)、偽靜態(tài)場景
重寫指令
代碼1
location /baism00 { rewrite ^(.*)$ http://192.168.10.129; } location /baism01 { rewrite ^(.*)$ http://192.168.10.129 break; } location /baism02 { rewrite ^(.*)$ http://192.168.10.129 redirect; } location /baism03 { rewrite ^(.*)$ http://192.168.10.129 permanent; }
重寫規(guī)則:rewrite 正則 替代內(nèi)容 flag標記
flag標記
last
:匹配后,進行向下執(zhí)行后面的代碼,不跳轉(zhuǎn)break
:匹配后中止,不執(zhí)行后面代碼redirect
: 302臨時重定向 搜索網(wǎng)站保存舊網(wǎng)站permanent
:301永久重定向 搜索網(wǎng)站保存新網(wǎng)站
使用正則匹配,注意rewrite匹配字符是 目錄全部內(nèi)容,不是location匹配后剩下的內(nèi)容
代碼2
location /html { rewrite /html/(.*)$ /post/$1 permanent; }
rewrite 匹配內(nèi)容 替換內(nèi)容
匹配內(nèi)容使用括號分組匹配
替換內(nèi)容使用$1,$2代表匹配的內(nèi)容
代碼3
location / { root html; index index.html index.html; if ($http_user_agent ~* 'Chrome') { break; return 43; #return http://www.jd.com } }
nginx匹配
- 模糊匹配:~匹配 !~不匹配 ~*不區(qū)分大小寫的匹配
- 精確匹配 :=匹配 !=不匹配
注意:if和()和{}之間都有空格
#注釋
$http_user_agent
用戶代理,用戶瀏覽器類型$request_filename
當前請求的文件路徑名,由root或alias指令與URL請求生成$uri
請求的不帶請求參數(shù)的URL,可能和最初的值有不同,比如經(jīng)過重定向之類的$http_host http
地址
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Nginx實現(xiàn)根據(jù) IP 匹配指定 URL
最近的一個項目,需要特定的IP訪問某專題頁面的時候跳轉(zhuǎn)到網(wǎng)站首頁,思考了下,直接使用NGINX實現(xiàn),分享給大家。2014-09-09Nginx性能優(yōu)化之Gzip壓縮設置詳解(最大程度提高頁面打開速度)
這篇文章主要介紹了Nginx性能優(yōu)化之Gzip壓縮設置詳解(最大程度提高頁面打開速度),需要的朋友可以參考下2022-01-01Nginx反向代理location和proxy_pass配置規(guī)則詳細總結(jié)
nginx代理訪問很好用,但是好多人不清楚location和proxy_pass組合在一起使用時訪問的url被代理的url真實地址是什么,下面這篇文章主要給大家介紹了關(guān)于Nginx反向代理location和proxy_pass配置規(guī)則的相關(guān)資料,需要的朋友可以參考下2022-09-09詳解NGINX如何統(tǒng)計網(wǎng)站的PV、UV、獨立IP
做網(wǎng)站的都知道,平常經(jīng)常要查詢下網(wǎng)站PV、UV等網(wǎng)站的訪問數(shù)據(jù),這篇文章主要介紹了詳解NGINX如何統(tǒng)計網(wǎng)站的PV、UV、獨立IP ,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-05-05