Nginx捕獲并自定義proxy_pass返回的錯誤問題
Nginx捕獲并自定義proxy_pass返回錯誤
需求
實際情況:
后端圖片存儲服務(wù)對接華為存儲,把數(shù)據(jù)寫在華為上。
上級會不定時的對圖片進行抽查考核,要求5s內(nèi)必須返回數(shù)據(jù),但是圖片服務(wù)不定時會掛掉,由于代碼年代久遠已無人維護,只好在圖片服務(wù)前端再部署個nginx,通過proxy_pass代理后端服務(wù),當后端返回404或5xx錯誤時,對proxy_pass進行捕獲,實現(xiàn)自定義輸出。
解決方法
upstream DGIMediaServer { server 172.24.49.xxx:6551 fail_timeout=3s; } server { listen 8888; server_name _; root html; sent_timeout 5s; #將下面幾個錯誤碼跳轉(zhuǎn)到/200.jpg error_page 404 500 502 =200 /200.jpg; location = /200.jpg { root html; } location / { #使用自定義捕獲,不開啟則無法捕獲proxy_pass的錯誤 proxy_intercept_errors on; #連接服務(wù)器超時設(shè)置 proxy_connect_timeout 3s; #發(fā)送數(shù)據(jù)超時設(shè)置 proxy_send_timeout 3s; #返回數(shù)據(jù)超時設(shè)置 proxy_read_timeout 3s; #自定義錯誤處理 error_page 404 500 502 503 504=200 /200.jpg; } index index.html index.php; charset UTF-8; }
Nginx的proxy_pass、root、alias的說明
代理配置
1、root
root配置代理路徑時,會在代理的地址后拼接配置字段:
location /static { root static/image; }
在訪問http://ip:port/static/*.*時會映射到http://ip:port/static/static/image/*.*
2、alias(只能用于location)
alias配置代理路徑時,直接替換代理地址:
location /static { alias static/image; }
在訪問http://ip:port/static/*.*時會映射到http://ip:port/static/image/*.*
3、proxy_pass
proxy_pass配置代理路徑時,直接替換整個代理路徑,包括ip地址的端口等:
location /static { proxy_pass http://ip_two:port_two/static; }
在訪問http://ip:port/static/*.*時會映射到http://ip_two:port_two/static/static/*.*
- 代理路徑后不帶斜杠時,配置路徑會替代原本的ip和端口等,并拼接代理地址。
- 代理路徑后帶斜杠時,配置路徑會替代原本的ip和端口等,不拼接代理地址。
location /static/ { proxy_pass http://ip_two:port_two/abc/; }
在訪問http://ip:port/static/*.*時會映射到http://ip_two:port_two/abc/*.*
總結(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服務(wù)器的SSL證書配置以及對SSL的反向代理配置
這篇文章主要介紹了Nginx服務(wù)器的SSL證書配置以及對SSL的反向代理配置方法,通常在開啟全站HTTPS時會用到,需要的朋友可以參考下2016-01-01nginx實現(xiàn)http轉(zhuǎn)換為https的項目實踐
Nginx作為Web服務(wù)器時,可以通過配置實現(xiàn)HTTP跳轉(zhuǎn)HTTPS,本文主要介紹了nginx實現(xiàn)http轉(zhuǎn)換為https的實踐,具有一定的參考價值,感興趣的可以了解一下2025-03-03nginx網(wǎng)站服務(wù)如何配置防盜鏈(推薦)
這篇文章主要介紹了nginx網(wǎng)站服務(wù)如何配置防盜鏈,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01