nginx代理無(wú)法訪問(wèn)后端服務(wù)的解決
nginx代理無(wú)法訪問(wèn)后端服務(wù)
現(xiàn)象
nginx配置location網(wǎng)頁(yè)顯示css/js文件無(wú)法加載,但是后端服務(wù)訪問(wèn)正常,估計(jì)是后端服務(wù)將后綴路徑寫(xiě)死導(dǎo)致nginx無(wú)法跳轉(zhuǎn)
報(bào)錯(cuò)
2022/08/05 13:00:24 [error] 3389#e: *1092213 upstream timed out (110: Connection timed out) while reading upstream, client: 10.6. 18.19, server: localhost, request: “POST /rcenter/rpt/api/showReport HTTP/1.1”, upstream: “http://10.6.6.65:8880/rcenter/rpt/api/showReport” host: “10.6.6.67”
處理
以下這種也寫(xiě)法也可以,但是配置有多個(gè)location就會(huì)亂了
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
proxy_pass "http://域名+端口";最好一個(gè)rewrite針對(duì)具體的location
location /prod {
proxy_pass http://10.1.5.17:20005;
rewrite ^/prod(.*) http://10.1.5.17:20005/$1 permanent;
}解決nginx代理后,前端拿不到后端自定義的header
先說(shuō)結(jié)論,因?yàn)榍岸撕蚽ginx對(duì)接,所以需要在nginx添加如下配置向前端暴露header
add_header 'Access-Control-Expose-Headers' 'Authorization'
排查過(guò)程
1.后端設(shè)置了Authorization 的響應(yīng)頭作為token的返回,前后端本地聯(lián)調(diào)沒(méi)有問(wèn)題
response.setHeader("Authorization", Objects.equals(tokenNew, "") ?token:tokenNew);
2. 發(fā)布到服務(wù)器上,開(kāi)啟nginx代理,結(jié)果前端返回的接口拿不到自定義的Header,然后到network里面一看,明明有啊



3.百度了一下,網(wǎng)上說(shuō)后端設(shè)置屬性add_header 'Access-Control-Expose-Headers' 'Authorization'
結(jié)果還是不行,為何?突然想到我是用nginx代理的,前端直接訪問(wèn)的nginx,是不是要在nginx中設(shè)置


4.果然,如果用nginx代理,需要在nginx中設(shè)置,如果不用nginx代理直接在后端響應(yīng)中設(shè)置
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
nginx做代理轉(zhuǎn)發(fā)前端請(qǐng)求到后端的代碼示例
Nginx作為反向代理服務(wù)器,可以有效處理請(qǐng)求并轉(zhuǎn)發(fā)到后端服務(wù)器,這篇文章主要介紹了nginx做代理轉(zhuǎn)發(fā)前端請(qǐng)求到后端的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-01-01
nginx從安裝到配置詳細(xì)說(shuō)明(安裝,安全配置,防盜鏈,動(dòng)靜分離,配置 HTTPS,性能優(yōu)化)
這篇文章主要介紹了nginx從安裝到配置詳細(xì)說(shuō)明(安裝,安全配置,防盜鏈,動(dòng)靜分離,配置 HTTPS,性能優(yōu)化,緩存,url重寫(xiě)),需要的朋友可以參考下2022-01-01
使Nginx服務(wù)器支持中文URL的相關(guān)配置詳解
這篇文章主要介紹了使Nginx服務(wù)器支持中文URL的相關(guān)配置方法,搜索引擎方面Google目前對(duì)中文URL的支持度也很好,需要的朋友可以參考下2016-01-01
Nginx的偽靜態(tài)配置中使用rewrite來(lái)實(shí)現(xiàn)自動(dòng)補(bǔ)全的實(shí)例
這篇文章主要介紹了Nginx的偽靜態(tài)配置中使用rewrite來(lái)實(shí)現(xiàn)自動(dòng)補(bǔ)全的實(shí)例,文中對(duì)rewrite的相關(guān)參數(shù)和正則表達(dá)使用也做了介紹,需要的朋友可以參考下2015-12-12
Nginx的405 not allowed錯(cuò)誤解決方法
本文主要介紹了Nginx的405 not allowed錯(cuò)誤解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05
Nginx實(shí)現(xiàn)404頁(yè)面的配置方法的兩種方法
在使用Nginx作為Web服務(wù)器時(shí),配置404頁(yè)面是一項(xiàng)基本需求,本文介紹了兩種配置404頁(yè)面的方法,這兩種方法各有特點(diǎn),可以根據(jù)實(shí)際需求選擇適合的配置方式2024-09-09

