如何利用Nginx实现路径匹配

首先,假设我们已经有一台可用的Nginx,这个时候,如果我们需要专门匹配用户端的带某一特殊路径的请求,并转发到服务器A和服务器B,则可以为Nginx的配置文件修改为:

upstream Serv {
        ip_hash;
        server {服务器A的IP和端口};
        server {服务器B的IP和端口};
}

server {
        listen 80;
        server_name lb_1;

        location /matchedURL/ {
                proxy_pass http://Serv/targetURL/;
                proxy_set_header X-Real-IP  $remote_addr;
                proxy_set_header Host $host;

        }
}

这里Serv代表具体处理请求的服务器信息,可以是一台也可以使多台,处理规则可自己定义,详情请参考:
https://www.cnblogs.com/henghengdh/articles/3524058.html

location的后面需要加上你需要匹配的路径的规则,这里可以自己定义,比如,https://news.sina.com.cn/world/中的world就代表新浪新闻中的国际新闻版块,可以根据具体功能进行划分,也可以根据来源划分等等

location中需要注意的是,proxy_pass 后面需要加上http://Serv代表所有流量均流入Serv中定义的服务器,而targetURL则是这些服务中所具备的原有的上下文,如果没有的话可以不填,有的话不能填在Serv中,因为会报格式错误

proxy_set_header Host $host; 是必须有的,不然无法生效

proxy_set_header X-Real-IP $remote_addr; 则是用来记录请求来源的IP地址,可以配合proxy_set_header X-Forwarded-For一起使用

这么写配置文件,当终端访问www.你的域名.com/matchedURL/...的时候,就能能够直接定向到服务器A或服务器B中的/targetURL服务

你可能感兴趣的:(如何利用Nginx实现路径匹配)