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