Docker部署WEB 应用时,本地可以成功打开测试页,在公网上(阿里云服务器)却不能打开。
1、环境:阿里云服务器
2、CentOS7系统
3、Docker成功部署
这里前提docker 已经成功部署啦,现有有一个简单的测试案例,在docker上部署一个应用从而访问web。
接下来让我们尝试使用 docker 构建一个 web 应用程序。
我们将在docker容器中运行一个 Python Flask 应用来运行一个web应用。
通过 -p 参数来设置一样的端口:
docker ps 查看正在运行的容器
容器内部的 5000 端口映射到我们本地主机的 5000 端口上。
这时我们可以通过浏览器访问WEB应用
访问失败
指定外网端口为5000,
1. 本地测试能否打开测试页
本地没有问题。
2. 浏览器中访问
在任意一台电脑上输入公网IP+端口号 (此端口号为运行WEB应用时指定的端口号5000) 如我的阿里云公网IP为123.11.11.11 此时在任意一台有网络的浏览器地址栏输入公网IP:http://123.11.11.11:5000 应该会出现测试页
但现在出现如下图所示:
显示打不开
查啦大量资料,以前曾经也解决过,一定弄明白自已购买的地区后,再去设置安全组的配置规则。
***1. 登录阿里云管理控制台****
2.找到云服务器ECS-概览
3. 点击云服务器ECS,这个是我购买的类型,其他类型的就不清楚啦。
4. 点击本安全组后,再次点击配置规则:
5. 手动添加端口5000
6. 最后保存,再从浏览器地址栏输入公网IP加端口号3344成功显示测试页如图:
如果想在一个机器上用不同端口跑不同的应用,比如80挂默认网站,8080挂另外一个应用,但是又只有一个域名,可以使用二级域名+隐性URL的方式实现。比如 www.mysite.com 直接解析到80 app.mysite.com 解析到同一主机8080端口。
实现主机通过端口的复用。
阿里云的隐性URL,原理上和反向代理类似,设置方法:
1、阿里云控制台--域名--解析--设置
新增解析
类型:隐性URL
主机记录 :二级域名 ,比如 app
记录值: http://www.mysite.com:8080/ 应用名称
这里注意一个坑,隐性url 会直接重定向端口后面,之后的应用名字必须有!!!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)