国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

nginx代理去掉URl前綴

這篇具有很好參考價(jià)值的文章主要介紹了nginx代理去掉URl前綴。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

今天接到一個配置nginx的需求是:需要訪問某個域名時,nginx可以去掉前綴去代理訪問到后端

正常配置情況下:
在nginx配置文件中中設(shè)置了 location /prod-api/api 時 瀏覽器訪問 /prod-api/api 反向代理到后端服務(wù)后,后端服務(wù)接收到的url地址實(shí)際還是 /prod-api/api

需要實(shí)現(xiàn)的功能需求:
訪問url路徑/prod-api/api經(jīng)過nginx反向代理后,到達(dá)后端服務(wù)的實(shí)際url地址為/api

以下是原nginx配置文件中l(wèi)ocation部分的配置內(nèi)容:

server {
        listen 80;
        server_name localhost;
        charset utf-8;
         
        location / {
        root /usr/share/nginx/html/cashier;
        try_files $uri $uri/ /index.html;
        index index.html index.htm;
    }

    location /prod-api/ {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass http://127.0.0.1:9076;
    }
       access_log /var/log/nginx/access.log main;
       error_log /var/log/nginx/error.log warn;
}

將上述代碼修改為如下nginx location代碼:

server {
        listen 80;
        server_name localhost;
        charset utf-8;
         
        location / {
        root /usr/share/nginx/html/cashier;
        try_files $uri $uri/ /index.html;
        index index.html index.htm;
    }

    location ^~/prod-api/ {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass http://127.0.0.1:9076/;
    }
       access_log /var/log/nginx/access.log main;
       error_log /var/log/nginx/error.log warn;
}

注意點(diǎn):

  • 在proxy_pass 反向代理地址最后加一個/
  • 在location匹配的url路徑前添加^~/

location ^~/prod-api/:匹配任何以 /prod-api/ 開頭的地址,匹配符合以后,停止往下搜索正則,采用這一條

  • 不可以使用:proxy_set_header Host $http_host;

我在現(xiàn)有環(huán)境的nginx里添加這段配置之后,訪問會轉(zhuǎn)不過去,查看nginx日志也只能看到是404信息,并沒有更多定位問題的信息。檢查了許久也沒找到原因,于是注釋掉location 里面所有配置,里面只加proxy_pass這段配置,結(jié)果nginx是能夠轉(zhuǎn)發(fā)成功的,這說明單獨(dú)來看這條location的配置是沒有問題的,很有可能是現(xiàn)有環(huán)境nginx里的某些配置影響到了這個轉(zhuǎn)發(fā)。

為了定位問題原因,location下的配置逐個注釋來定位問題,最后發(fā)現(xiàn)當(dāng)注釋掉proxy_set_header Host $http_host ;這條配置之后,就能成功轉(zhuǎn)發(fā)了。這才注意到是反向代理配置的問題。

此配置的作用是:把原h(huán)ttp請求的Header中的Host字段也放到轉(zhuǎn)發(fā)的請求里。
如果不加這一行的話,nginx轉(zhuǎn)發(fā)的請求header里就不會有Host字段,而服務(wù)器是靠這個Host值來區(qū)分你請求的是哪個域名的資源的。

但是現(xiàn)有環(huán)境中原有的配置也不能隨便刪掉,所以可以進(jìn)行如下設(shè)置:

即,在location里面添加一條 proxy_set_header Host $proxy_host;配置。

設(shè)置 proxy_set_header Host $host 時,瀏覽器直接訪問 nginx,獲取到的 Host 是 $host 的值,沒有端口信息。此時代碼中如果有重定向路由,那么重定向時就會丟失端口信息,導(dǎo)致 404文章來源地址http://www.zghlxwxcb.cn/news/detail-494965.html

到了這里,關(guān)于nginx代理去掉URl前綴的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • axios 多個baseURL配置、實(shí)現(xiàn)不同前綴代理到不同的服務(wù)器的幾種方式

    前言: 在開發(fā)中,有可能遇到每部分的功能的需要調(diào)用另一臺服務(wù)器的地址。這個時候就需要設(shè)置不同的請求前綴首先代理到不同的服務(wù)器地址。 一、axios封裝實(shí)例以及代理:(不是完整的封裝實(shí)例,重點(diǎn)在于baseURL的區(qū)別) 文件路徑:/CMDB/src/utils/request.js 代理的時候有兩個前

    2024年02月04日
    瀏覽(22)
  • windows 系統(tǒng)批量去掉文件名前綴 bat 腳本

    在 Windows 系統(tǒng)上,你可以使用批處理腳本(.bat 文件)來批量去掉文件名的前綴。以下是一個簡單的示例腳本,你可以根據(jù)自己的需求進(jìn)行修改: 將上述腳本保存為擴(kuò)展名為 .bat 的文件,并將 \\\"C:PathToYourFolder\\\" 替換為你想要批量移除文件名前綴的文件夾路徑,以及將 \\\"OldPr

    2024年02月13日
    瀏覽(93)
  • nginx部署vue項(xiàng)目,給訪問路徑加前綴的方法:vue.config.js配置publicPath和nginx配置alias

    本文主要涉及到 Vue.js 項(xiàng)目部署在 Nginx 上的相關(guān)問題。其中,publicPath 選項(xiàng)可以用于設(shè)置 Vue.js 項(xiàng)目的訪問路徑前綴,alias 指令可以用于 Nginx 中將請求路徑映射到指定的文件系統(tǒng)路徑。同時,通過設(shè)置 Nginx 配置文件,可以將多個 Vue.js 項(xiàng)目部署在同一個域名下的不同路徑中。

    2024年02月16日
    瀏覽(16)
  • IIS配置反向代理URL rewrite.dll加載失敗

    2022年10月9日17:58:33更新: 不要嘗試了,以下方法只能轉(zhuǎn)發(fā)靜態(tài)資源,不能轉(zhuǎn)發(fā)接口數(shù)據(jù)。 Windows Server 2012R2 + IIS8.5 + URL Rewrite2.1 安裝URL ReWrite后,出現(xiàn)503報(bào)錯, 事件查看器中顯示: 模塊 DLL C:Windowssystem32inetsrvrewrite.dll 未能加載。返回的數(shù)據(jù)為錯誤信息。 1、雙擊URLRewrite.ms

    2024年02月06日
    瀏覽(23)
  • vue.config.js使用代理配置真實(shí)請求url

    vue.config.js使用代理配置真實(shí)請求url

    前端請求接口過程中會統(tǒng)一配置代理請求url,配置之后瀏覽器只能看到local host路徑。 為方便查看請求的真實(shí)ip,需要在vue.config.js中做如下配置,便能在瀏覽器實(shí)時查看到真實(shí)地址 配置完重啟,效果如下:

    2024年02月13日
    瀏覽(29)
  • 使用Nginx進(jìn)行URL轉(zhuǎn)發(fā)的配置示例

    Nginx是一個高性能的Web服務(wù)器和反向代理服務(wù)器,它還可以用于URL轉(zhuǎn)發(fā)。在本教學(xué)文章中,我們將從安裝Nginx開始,逐步介紹配置步驟,并展示一個URL轉(zhuǎn)發(fā)的案例。 步驟1:安裝Nginx 首先,我們需要安裝Nginx。以下是在Ubuntu系統(tǒng)上安裝Nginx的步驟: 打開終端窗口,并執(zhí)行以下命

    2024年02月10日
    瀏覽(32)
  • Nginx配置 轉(zhuǎn)發(fā)URL中包含特殊字符

    Nginx經(jīng)常被用來作為代理服務(wù)器,可以有效的避免跨域問題。 老項(xiàng)目需要對接一個新的服務(wù),但是存在跨域問題,然后就配置了一個代理 可是突然在某天,新接口出現(xiàn)了異常。接口報(bào)了400錯誤。 然后定位發(fā)現(xiàn)新接口url比較特殊還不能修改,在其他的地方也用了,整個URL中包

    2024年02月05日
    瀏覽(18)
  • Nginx代理nginx.conf配置——nginx對靜態(tài)文件代理

    如果需要將資源代理到不同的目錄下,則在nginx.conf中的server節(jié)點(diǎn)下進(jìn)行如下配置: 修改后,重新加載nginx配置即可,nginx部分命令如下: 在server中添加如下配置(示例listen端口為80) 訪問:localhost/video/demo.mp4即可訪問

    2024年02月08日
    瀏覽(29)
  • 使用nginx簡單搭建一個ChatGPT代理服務(wù)器

    使用nginx簡單搭建一個ChatGPT代理服務(wù)器

    作者:ChenZhen 本人不??碈SDN消息,有問題通過下面的方式聯(lián)系: 郵箱:1583296383@qq.com vx: ChenZhen_7 我的個人博客地址:https://www.chenzhen.space/?? 版權(quán):本文為博主的原創(chuàng)文章,本文版權(quán)歸作者所有,轉(zhuǎn)載請附上原文出處鏈接及本聲明。?? 如果對你有幫助,請給一個小小的sta

    2024年02月06日
    瀏覽(20)
  • Nginx代理nginx.conf配置——反向代理(對WebSocket支持)

    Nginx代理nginx.conf配置——反向代理(對WebSocket支持)

    基于Nginx代理nginx.conf配置——反向代理,如果要添加websocket支持,需要進(jìn)行如下配置 在http中添加一下配置,添加對websocket支持 配置后重新運(yùn)行nginx后,websocket即可成功代理。 注意防火墻端口是否開放、nginx如果使用docker,其對應(yīng)的端口是否映射出來。

    2024年02月13日
    瀏覽(35)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包