nginx中如何配置proxy_pass
nginx http 代理
通過(guò)proxy_set_header,返回客戶(hù)端真實(shí)IP地址及端口,而不是代理主機(jī)ip
server {
listen 80;
location / {
proxy_set_header Host h o s t : host: host:server_port; # 設(shè)置請(qǐng)求頭:代理IP:port
proxy_set_header X-Real-IP $remote_addr; # 真實(shí)客戶(hù)端地址IP
proxy_set_header X-Real-PORT $remote_port;
proxy_set_header X-Forwarded-For KaTeX parse error: Double subscript at position 12: proxy_add_x_?forwarded_for; …h(huán)ttp_host:88$request_uri;
}
}在nginx中配置proxy_pass時(shí)的加不加/的問(wèn)題
要注意proxy_pass后的url最后的/
當(dāng)加上了/,相當(dāng)于是加了路徑,則nginx不會(huì)保留location中匹配的路徑部分
如果沒(méi)有/,則會(huì)把匹配的路徑部分保留
例:
location ^~ /static/css/
{
proxy_cache css_cache;
proxy_set_header Host css.ztit.cn;
proxy_pass http://css.ztit.cn/;
}如上面的配置
如果請(qǐng)求的url是:
http://[域名]/static/css/a.css
會(huì)被代理成:
http://css.ztit.cn/a.css
location ^~ /static/css/
{
proxy_cache css_cache;
proxy_set_header Host css.ztit.cn;
proxy_pass http://css.ztit.cn;
} 如上面的配置
如果請(qǐng)求的url是:
http://[域名]/static/css/a.css
則會(huì)被代理到:
http://css.ztit.cn/static/css/a.css
關(guān)于proxy_pass配置的path問(wèn)題
如果,你不想nginx對(duì)你的URI請(qǐng)求被修改
那么,proxy_pass的配置中就不應(yīng)該帶有任何path。
例:
location /static/css/ {
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:85;
}如果請(qǐng)求的url是:
http://127.0.0.1/static/css/a.css
會(huì)被代理到:
http://127.0.0.1:85/static/css/a.css
否則,在proxy_pass的配置中有path
location /static/css/ {
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:85/path;
}如果請(qǐng)求的url是:
http://127.0.0.1/static/css/a.css
會(huì)被代理到:
http://127.0.0.1:85/path/a.css
nginx 負(fù)載均衡
關(guān)于nginx負(fù)載均衡配置的幾個(gè)狀態(tài)參數(shù)講解。
down,表示當(dāng)前的server暫時(shí)不參與負(fù)載均衡。backup,預(yù)留的備份機(jī)器。當(dāng)其他所有的非backup機(jī)器出現(xiàn)故障或者忙的時(shí)候,才會(huì)請(qǐng)求backup機(jī)器,因此這臺(tái)機(jī)器的壓力最輕。max_fails,允許請(qǐng)求失敗的次數(shù),默認(rèn)為1。當(dāng)超過(guò)最大次數(shù)時(shí),返回proxy_next_upstream 模塊定義的錯(cuò)誤。fail_timeout,在經(jīng)歷了max_fails次失敗后,暫停服務(wù)的時(shí)間。max_fails可以和fail_timeout一起使用。
#熱備:如果你有2臺(tái)服務(wù)器,當(dāng)一臺(tái)服務(wù)器發(fā)生事故時(shí),才啟用第二臺(tái)服務(wù)器給提供服務(wù)。
服務(wù)器處理請(qǐng)求的順序:AAAAAA突然A掛啦,BBB…
upstream images {
server 192.168.1.50:8080;
server 192.168.1.50:8080 backup; #熱備
}#輪詢(xún):nginx默認(rèn)就是輪詢(xún)其權(quán)重都默認(rèn)為1,服務(wù)器處理請(qǐng)求的順序:ABABABABAB…
upstream images1 {
server 192.168.1.50:8080;
server 192.168.1.51:8080;
}#加權(quán)輪詢(xún):跟據(jù)配置的權(quán)重的大小而分發(fā)給不同服務(wù)器不同數(shù)量的請(qǐng)求。如果不設(shè)置,則默認(rèn)為1。下面服務(wù)器的請(qǐng)求順序?yàn)椋篈BBABBABBABBABB…
upstream images2 {
server 192.168.1.50:8080 weight=1;
server 192.168.1.51:8080 weight=2;
}#ip_hash:nginx會(huì)讓相同的客戶(hù)端ip請(qǐng)求相同的服務(wù)器。
upstream images3 {
server 192.168.1.50:8080;
server 192.168.1.51:8080;
ip_hash;
}
upstream images4 {
server 192.168.1.50:8080 max_fails=2 fail_timeout=30s;
server 192.168.1.51:8080 max_fails=2 fail_timeout=30s;
}
server {
listen 80;
server_name _;
location / {
proxy_read_timeout 1800;
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://images;
}
}總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Nginx中l(wèi)ocation proxy_pass加與不加/的區(qū)別說(shuō)明
- Nginx?location和proxy_pass配置示例詳解
- Nginx中proxy_pass的斜杠的兩種方式
- Nginx的location路徑與proxy_pass匹配規(guī)則說(shuō)明
- Nginx捕獲并自定義proxy_pass返回的錯(cuò)誤問(wèn)題
- Nginx rewrite和proxy_pass的區(qū)別及說(shuō)明
- Nginx proxy_pass如何到https后端
- nginx代理參數(shù)proxy_pass的實(shí)現(xiàn)
- nginx反向代理proxy_pass遇到的死循環(huán)問(wèn)題
- 解決nginx配置proxy_pass之后,響應(yīng)變慢的問(wèn)題
- Nginx使用if指令實(shí)現(xiàn)多個(gè)proxy_pass方式
- Nginx中proxy_pass使用小結(jié)
相關(guān)文章
Nginx中roxy_set_header與add_header區(qū)別舉例淺析
proxy_set_header是一個(gè) Nginx 配置指令,用于設(shè)置將要轉(zhuǎn)發(fā)到后端服務(wù)器的 HTTP 請(qǐng)求頭,這篇文章主要給大家介紹了關(guān)于Nginx中roxy_set_header與add_header區(qū)別的相關(guān)資料,需要的朋友可以參考下2024-04-04
keepalived+nginx高可用實(shí)現(xiàn)方法示例
這篇文章主要介紹了keepalived+nginx高可用實(shí)現(xiàn)方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
Nginx請(qǐng)求訪問(wèn)控制實(shí)現(xiàn)方案
Nginx并不直接實(shí)現(xiàn)漏桶算法或令牌桶算法,但這些算法在控制網(wǎng)絡(luò)流量和請(qǐng)求速率方面非常有用,這些算法通常在網(wǎng)絡(luò)編程、API服務(wù)、負(fù)載均衡等領(lǐng)域中使用,以確保系統(tǒng)的穩(wěn)定性和性能,這篇文章給大家介紹Nginx請(qǐng)求訪問(wèn)控制實(shí)現(xiàn)方案,感興趣的朋友跟隨小編一起看看吧2024-05-05
Nginx四層負(fù)載均衡的實(shí)現(xiàn)示例
Nginx?不支持傳統(tǒng)的四層負(fù)載均衡,但可以通過(guò)stream模塊配合TCP實(shí)現(xiàn)類(lèi)似的功能,本文主要介紹了Nginx四層負(fù)載均衡的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-04-04

