分享关于一主机多域名的思考

分享关于一主机多域名的思考

Scroll Down

    前

    首先,目前的情形是第一个域名ishells使用docker-compose部署了halo,也使用了https,docker的nginx镜像映射80、443端口到本地的的80、443端口。

    虽说容器优点很多,优势也很大!但是对于一个服务器多域名的我来说,使用容器部署web就有一个致命的弊端了,容器与本地80、443端口结合出现了紧耦合的问题:ishells部署之后,就无法通过nginx配置多域名共享80端口了!

    所想:

    本身技术能力有限,再跟老哥沟通学习的过程中,理清了之前暂时未解决的疑惑,以及之后的思路,现在梳理一下自己的想法分享出来~

    1、有连接的代码跑起来都会监听一个端口,访问代码提供的服务需要访问这个监听的端口

    2、docker部署nginx访问流程:

    域名访问,dns解析到ip,ip + 端口 socket访问(http默认80),因为容器80端口映射到本地80,所以访问到nginx容器的80端口,反向代理访问到代码容器的8090端口!

    3、ip + 80无法访问是因为nginx.conf里有server_name这一项,因此这个代理只针对域名来访问。

    ip + 8090(代码服务接口)可以直接访问代码提供的服务(代码容器的8090端口映射到了本地的8090)

    4、http默认端口80,https默认端口443,当人为修改了默认端口之后使用域名或IP访问就必须要加上端口,例www.724linux.com:8090,平常的访问其实也带上了80端口,但是默认80可以省略

思路:

    现在的需求就是一台主机多域名:

    通过了解,生产环境中也很少有企业将web放入容器。

    apache可以使用虚拟主机实现多域名单主机;nginx也可以通过location实现多域名共享80端口

    因为nginx是安装在容器当中的,通过映射实现了恶心的本地80端口与nginx紧耦合……-_-||

    虚拟机测试环境尝试之后,摆在脸前的选择要么放弃现有的halo平台,备份之前的数据,使用LN/AMP部署多域名,要么724linux使用端口访问!

    唉,备份的话重新导入新平台也是麻烦事儿!脑壳疼!