之前公司的多个站点都是部署在两台外网服务器中, 并通过域名进行相互调用。最近要将这些站点迁移到两台处于同一局域网内的服务器中。在代码中通过Http请求另一局域网的站点时报错。请求外网第三方应用一切正常。

 

服务器A:CentOS系统,Docker部署,Asp.Net Core Web应用,内网IP: 192.168.1.10

服务器B:Windows server系统,IIS部署,Asp.Net Core Web应用,内网IP: 192.168.1.11

现在需要在服务器A,Docker容器中的Web应用中通过域名访问服务器B上的Web应用。

1、服务器A中添加域名映射

1.1  编辑文件:vi /etc/hosts

1.2 在文件末端添加域名映射(这里加了三个域名):192.168.1.11  x.x.com  x1.x1.com  x2.x2.com

1.3 保存文件

2、将Docker容器的网络设置为Host模式

2.1 在生成容器的时候加上:--network=host

例如:docker run --network=host  --name hotel --restart=on-failure:10 -v /data/webapp/hotel/code:/app  -v /data/webapp/hotel/files:/app/files -v /etc/localtime:/etc/localtime:ro -itd hotel_test      使用host的网络模式就不能指定端口号了。可以在dockerfile中加入一下命令来指定站点的端口号:ENV ASPNETCORE_URLS http://+:8088

2.2 如果先创建的容器,再配置域名映射。那么需要重启容器: docker restart 容器ID

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐