搭建基于Docker的Nginx服务器代理HTTPS服务

本文详细描述了如何在CentOS Docker容器中通过Nginx配置代理服务器,将外部主机的HTTPS服务(www.healer.com)映射到容器内,并通过端口映射实现外部访问。过程中涉及DNS解析、端口映射、Nginx配置及主机与容器间的网络通信,最终实现从Windows 7 Chrome浏览器安全访问www.healer.com的效果。
摘要由CSDN通过智能技术生成

基本环境:

使用CentOS基于Apache搭建服务器支持HTTPS服务(Apache直接安装在实体操作系统上)

安装Docker再开启一个CentOS的容器,在容器中安装并配置Nginx代理服务器,并将端口映射到外部主机

www.healer.com域名对应的主机是172.16.251.129(docker外部实体机上的虚拟网卡IP地址为172.17.0.1,Docker的CentOS容器内部的IP地址为172.17.0.2)

容器与主机的端口映射关系:

[root@bogon /]# docker port centos_yum_nginx 
80/tcp -> 0.0.0.0:5080
443/tcp -> 0.0.0.0:5443

测试终端Windows7运行Chrome浏览器,IP地址为172.16.251.128

访问过程如下,数据通过浏览器生成,打包传送给底层,DNS解析到www.healer.com指向172.16.251.129,并且访问的是5443端口,数据传送至172.16.251.129的5443端口

通过5443端口传送到Docker的CentOS容器中的443端口(配置容器端口映射的过程中不要指定IP地址),然后Nginx服务器根据配置文件将对应的数据转发到www.healer.com的443端口,这里需要注意的是:我们要在Docker的CentOS容器中创建配置一下www.healer.com的地址,由于容器内部除了环回只有一个网卡地址是172.17.0.2,所以这时候的 “/etc/hosts” 文件中的www.healer.com的映射地址应该是Docker在外部实体系统中的虚拟网卡的地址172.17.0.1,如下:

然后数据被转发到172.17.0.1:443端口,实际上172.17.0.1与172.16.251.129是同一个实体系统中的不同网卡上的IP地址(如下图所示),所以访问172.17.0.1的443端口其实就是直接访问了开始172.16.251.129映射的www.healer.com

最终实现如下效果:

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值