如何利用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服务

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容