一台ECS服务器,部署多(两)应用,且应用配置不同域名
场景
产品环境服务器有两台,前后端各分配一台服务器。现在在不增加机器的情况下,需要增加部署一套服务给台北地区服务。
现有的前端部署方案。
产品环境部署方案详解
实现
配置NAT步骤
配置好DNAT,将ECS 实例的两个内网ip和公网ip连接之后,这样,就可以用两个公网ip访问这台实例了。
题外话,关于费用
电话咨询阿里云客服,阿里云NAT费用3121/年。
EIP的费用按流量计是:设备工时费0.02¥/时, 流量0.8¥/GB。暂时这种方案,前期使用较少,流量较少,而且用流量包,先用着看看费用增长情况。
EIP包年的费用:5M -> 1000多¥/年, 10M -> 8000多¥/年, 50M -> 3.8万¥/年
参考一下,一台ECS实例:5M半年下来费用1.3万。
Docker container 绑定不同ip。
从代码中拷贝出来的一段
docker run --name $CONTAINER_NAME -v $(pwd)/web-desktop:/usr/share/nginx/html:ro -d -p $PRIVATE_IP:80:8081 -p $PRIVATE_IP:9000:9000 customize-nginx
$PRIVATE_IP可以指定主机以哪一个IP与container连接。
关于Mac电脑怎么新增加一个ip,参考
一些t絮i絮p叨s叨
jenkins config
jenkins不同环境部署是通过slave方式部署的。生产环境因为是一台机器部署两套应用,比较特殊。前面已经介绍了一台ECS实例通过NAT配置两个公网IP(这是一种很常见的方式,官网上的应用场景和这里很类似,官网有提到:“实例高利用率如果您的服务器托管多个应用,您可以在弹性网卡上分配多个辅助私网IP地址,提升实例的利用率,每个应用对外呈现一个独立的服务IP地址。”)
以下列的tips只是针对产品环境的。
- slave 节点host ip配置:产品环境的部署通过两个slave节点执行,两个slave节点分别配置为产品环境ECS实例的不同公网ip。
- slave 节点credentials配置:需要用不同的credentials进行ssh连接。虽然两节点看似连接两个环境ip,实际上是一台ECS实例,如果都用root用户进行ssh远程控制台登陆,配置的环境变量就没法区分。
- slave 节点remote root directory配置也需要配置为不同的。
- 节点环境变量配置