nginx多服务从单个端口代理

@多服务代理

需求

最近项目上遇到一个需求,两地的策略只能开单个端口,8081,但是有4个url要通过这个端口代理出去

10.10.10.1:2000/service1/aa/server
10.10.10.1:2000/service1/bb/server
10.10.10.1:3000/service2/aa/server
10.10.10.1:3000/service2/bb/server

配置一

server {
	listen 8081;
	
	location /service1/ {
		proxy_pass http://10.10.10.1:2000;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
	}
	location /service2/ {
		proxy_pass http://10.10.10.1:3000;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
	}
}

访问方式如下,IP代表nginx的代理地址,地址中第一个service1和service2代表的nginx中location后面的配置名字,注意location后面的名字后面有一个"/"

访问:
http://IP:8081/service1/service1/aa/server;
http://IP:8081/service1/service1/bb/server;
http://IP:8081/service2/service2/aa/server;
http://IP:8081/service2/service2/bb/server;

配置二在这里插入图片描述

server {
	listen 8081;
	server_name service1.server;
	location / {
		proxy_pass http://10.10.10.1:2000;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
	}
}

server {
	listen 8081;
	server_name service2.server;
	location / {
		proxy_pass http://10.10.10.1:3000;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
	}
}

这种的话,不常用,因为要改hosts文件,proxy_pass不需要写4个,写到端口就可以了。
还有就是server_name一般是需要配置/etc/hosts文件,在客户端开通访问策略后,也是需要添加host。

访问:
http://service1.server:8081/service1/aa/server;
http://service1.server:8081/service1/bb/server;
http://service2.server:8081/service2/aa/server;
http://service2.server:8081/service2/bb/server;

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值