[nginx] 代理转发和地址替换

2021/5/7 7:29:36

本文主要是介绍[nginx] 代理转发和地址替换,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

需求

客户端请求的nginx代理地址:

实际需要根据Header中 use_bff 的状态,如果值为 1 则转发到 bff 服务

否则转发到默认服务

配置 nginx.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#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;
        }
 
    }
}


这篇关于[nginx] 代理转发和地址替换的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


原文链接: https://www.cnblogs.com/yangyxd/p/14735130.html
扫一扫关注最新编程教程