欢迎来到 星空Online - 织梦者,我的原创世界。
最近因为工作需要,重新安装了Intellij IDEA 2019.2.1 (Ultimate Edition)
(Build # IU-192.6262.58, built on August 20, 2019),Tomcat版本为Apache Tomcat/9.0.24
。按照惯例,中文是一定会出现乱码的,所以我们需要修改一些配置解决这个问题。
比如修改IDEA自己的.vmoptions
文件,在文件后加入一行配置。
SNAT
全称为Source Network Address Translation
,其实就是源地址转换,通过iptables
配置转发规则,使内网转发到网关的请求IP地址可以变更为指定的地址。大家自家家里的路由器往往就可以看做是一个NAT网关,路由器通过拨号从ISP那里获得一个外网IP地址(如 45.67.8.90
),由路由器通过DHCP协议为子网内的机器分配内网地址(如 192.168.0.123
等),同时路由器也会为自己分配一个同一网段的地址(如192.168.0.1
),如果子网内的机器想要访问外部网络,比如想要打开本站(www.luckystarry.com),那么在浏览器发出请求后,DNS
会先将域名转化为IP地址121.196.193.53
,其网络流量会先发送到网关——即路由器192.168.0.1
,由路由器将请求来源地址192.168.0.123
修改为45.67.8.90
后,再将其转发到真实的外部地址,在服务器返回响应时,也是先返回至路由器,由路由器将数据包的目的IP修改为内网机器的IP后192.168.0.123
,内网机器便可收到此次请求的响应。
通过SNAT
,我们仅需有一台具备外网IP的机器,便可让同一子网的所有机器都能与外部通信,如果是建立在阿里云的VPC条件时,就意味着我们不需要为每台机器都绑定一个外网网卡,也能让所有机器对外发送请求。虽然阿里云提供了成熟的NAT网关
服务,但其高昂的售价(306元一个月)对于流量较小的站长来说,既不必要也不实惠。
本文以阿里云VPC环境为例,测试需要VPC中有至少一台自带公网带宽的ECS,或绑定了EIP的ECS
使用Docker部署站点已经很方便了,但是手敲命令还是会存在一定的风险——有可能因为写错命令导致生产环境挂掉、不方便多人操作等,因此我们可以选择一些常见的CI/CD工具帮我们完成这个工作。
这里向大家推荐的是Jenkins的解决方案。我们可以将Jenkins通过Docker部署,并使用Jenkins管理其他应用的编译与部署,由于Jenkins官方已经提供了Docker镜像,所以我们只需简单的命令就能让其跑起来。(命令中/var/jenkins
为宿主机用于存放Jenkins运行所需的文件,请根据自身实际情况替换)