nginx中如何配置proxy_pass
nginx http 代理
通過proxy_set_header,返回客戶端真實IP地址及端口,而不是代理主機ip
server { listen 80; location / { proxy_set_header Host h o s t : host: host:server_port; # 設(shè)置請求頭:代理IP:port proxy_set_header X-Real-IP $remote_addr; # 真實客戶端地址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時的加不加/的問題
要注意proxy_pass后的url最后的/
當加上了/,相當于是加了路徑,則nginx不會保留location中匹配的路徑部分
如果沒有/,則會把匹配的路徑部分保留
例:
location ^~ /static/css/ { proxy_cache css_cache; proxy_set_header Host css.ztit.cn; proxy_pass http://css.ztit.cn/; }
如上面的配置
如果請求的url是:
http://[域名]/static/css/a.css
會被代理成:
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; }
如上面的配置
如果請求的url是:
http://[域名]/static/css/a.css
則會被代理到:
http://css.ztit.cn/static/css/a.css
關(guān)于proxy_pass配置的path問題
如果,你不想nginx對你的URI請求被修改
那么,proxy_pass的配置中就不應(yīng)該帶有任何path。
例:
location /static/css/ { proxy_set_header Host $host; proxy_pass http://127.0.0.1:85; }
如果請求的url是:
http://127.0.0.1/static/css/a.css
會被代理到:
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; }
如果請求的url是:
http://127.0.0.1/static/css/a.css
會被代理到:
http://127.0.0.1:85/path/a.css
nginx 負載均衡
關(guān)于nginx負載均衡配置的幾個狀態(tài)參數(shù)講解。
down
,表示當前的server暫時不參與負載均衡。backup
,預(yù)留的備份機器。當其他所有的非backup機器出現(xiàn)故障或者忙的時候,才會請求backup機器,因此這臺機器的壓力最輕。max_fails
,允許請求失敗的次數(shù),默認為1。當超過最大次數(shù)時,返回proxy_next_upstream 模塊定義的錯誤。fail_timeout
,在經(jīng)歷了max_fails次失敗后,暫停服務(wù)的時間。max_fails可以和fail_timeout一起使用。
#熱備:如果你有2臺服務(wù)器,當一臺服務(wù)器發(fā)生事故時,才啟用第二臺服務(wù)器給提供服務(wù)。
服務(wù)器處理請求的順序:AAAAAA突然A掛啦,BBB…
upstream images { server 192.168.1.50:8080; server 192.168.1.50:8080 backup; #熱備 }
#輪詢:nginx默認就是輪詢其權(quán)重都默認為1,服務(wù)器處理請求的順序:ABABABABAB…
upstream images1 { server 192.168.1.50:8080; server 192.168.1.51:8080; }
#加權(quán)輪詢:跟據(jù)配置的權(quán)重的大小而分發(fā)給不同服務(wù)器不同數(shù)量的請求。如果不設(shè)置,則默認為1。下面服務(wù)器的請求順序為:ABBABBABBABBABB…
upstream images2 { server 192.168.1.50:8080 weight=1; server 192.168.1.51:8080 weight=2; }
#ip_hash:nginx會讓相同的客戶端ip請求相同的服務(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é)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- Nginx中l(wèi)ocation proxy_pass加與不加/的區(qū)別說明
- Nginx?location和proxy_pass配置示例詳解
- Nginx中proxy_pass的斜杠的兩種方式
- Nginx的location路徑與proxy_pass匹配規(guī)則說明
- Nginx捕獲并自定義proxy_pass返回的錯誤問題
- Nginx rewrite和proxy_pass的區(qū)別及說明
- Nginx proxy_pass如何到https后端
- nginx代理參數(shù)proxy_pass的實現(xiàn)
- nginx反向代理proxy_pass遇到的死循環(huán)問題
- 解決nginx配置proxy_pass之后,響應(yīng)變慢的問題
- Nginx使用if指令實現(xiàn)多個proxy_pass方式
- Nginx中proxy_pass使用小結(jié)
相關(guān)文章
Nginx?403?forbidden錯誤的五種原因及詳細解決方法
這篇文章主要給大家介紹了關(guān)于Nginx?403?forbidden錯誤的五種原因及詳細解決方法,相信很多人對403 forbidden是什么意思有了大致的了解,那么當我們遇到403 forbidden怎么解決呢,需要的朋友可以參考下2023-08-08nginx+php出現(xiàn)No input file specified解決辦法
這篇文章主要介紹了nginx+php出現(xiàn)No input file specified解決辦法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03Nginx配置PHP的Yii與CakePHP框架的rewrite規(guī)則示例
這篇文章主要介紹了Nginx配置PHP的Yii與CakePHP框架的rewrite規(guī)則示例,是這兩款高人氣框架使用Nginx的關(guān)鍵配置點,需要的朋友可以參考下2016-01-01詳解Nginx 靜態(tài)文件服務(wù)配置及優(yōu)化
這篇文章主要介紹了Nginx 靜態(tài)文件服務(wù)配置及優(yōu)化,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05Nginx對網(wǎng)段內(nèi)ip的連接數(shù)限流配置詳解
這篇文章主要介紹了Nginx對網(wǎng)段內(nèi)ip的連接數(shù)限流配置詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03