[nginx] 代理轉發和地址替換


需求

客戶端請求的nginx代理地址:

http://192.168.1.50:3000/dev/xxx

實際需要根據Header中 use_bff 的狀態,如果值為 1 則轉發到 bff 服務

http://192.168.1.60:3003/xxx

否則轉發到默認服務

http://192.168.1.70:8000/v100/xxx

配置 nginx.conf

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    keepalive_timeout  65;
  
    # 默認服務
    upstream mysvr {
        server 192.168.1.70:8000;
    }

    # bff 服務
    upstream bff-svr {
        server 192.168.1.60:3003;
    }

    server {
        listen  3000;
        server_name  192.168.1.50;


        location /dev {
            add_header Access-Control-Allow-Headers 'X-Requested-With,Origin,Host,Content-Type,Accept,esn,token,AppUserToken,appid,tenantid,tagid,use_bff';
	
            # 根據 header 轉發到 bff
            if ($http_use_bff) {
	            rewrite	"^\/dev+[a-z]*\/(.*)$" /$1 break;
                proxy_pass	http://bff-dev;
                break;
            }

            # 默認流量
            rewrite	"\/dev\/(.*)$" /v100/$1 break;
            proxy_pass    http://mysvr;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }
}



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM