早年购买的香港主机许久没有管理,数据库服务器压力也增加,wuguangnuo.cn的访问速度随之减慢。甚至过年期间服务器宕机了半个月我都没发现。


年后在家办公,闲来无事决定再购置一台大陆的主机,进一步提升网站访问速度和稳定性。阿里ECS部署过程记录备忘,故成此文。

首先当然是选购一台云服务器了,购买阿里ecs主机需要注意两点:一是有很多渠道和活动可以以极低的价格购买服务器,二是选购的配置够用就好,没必要过分追求单台服务器的高配。

购买的服务器系统建议使用Linux,因为我试用Windows10的时候,操作系统占用了大量的资源,装了一个JDK就卡成狗。不过阿里云腾讯云这些大牌厂商都支持更换操作系统,我就从更换操作系统讲起吧!

打开云服务器管理台,找到你要操作的ecs实例,在配置信息-更多中找到更换操作系统。


当然更换操作系统前需要关闭实例,更换操作系统会删除服务器中的所有内容,如果有重要资料请提前备份。

新的操作系统我建议使用镜像市场的宝塔linux面板,因为这样方便管理服务器资源,当然后期自己装也可以,不过镜像市场中已经提供了资源就简化了我们的操作。


这个当然是免费的,等待几分钟后,登录你的远程IP:8888,就可以进行初始化宝塔面板的操作。


设置好账号密码就可以登录进去了,我们可以看到系统版本CentOS 7.6.1810。


进入后有几点需要配置下,一个是升级面板已获得最新的版本,我们是从镜像市场安装的,镜像的版本可能比较古老;另一个是最好配置一下绑定域名和端口号。面板设置中有许多配置可以根据实际情况进行调整。

我购置这台服务器的主要目的是运行我的主站和接口。主站的初版是我大学时期写的了,那时为了简便开发使用的是PHP,后来随着项目更新,越来越多的“高级写法”占据了大量代码,我一次次的想重构但又放弃了这个想法,因为没有足够的动力去让我重构他。后面那个接口是我花了一个上午才做好的项目,用的是Java。后期我将多个系统的数据库整合到了同一个MySQL中,分配了不同的账号和权限。

所以,我们需要安装以下图片中的软件:


宝塔面板中的软件商店提供了许多软件,方便我们一键安装,当然你也可以尝试自己手动安装也不是不可以,主要是管理起来太麻烦了。

面板默认安装了Linux工具箱和SSH终端,还是挺方便的。

这些软件中,PHP我采用了最新的7.4版本,因为早年刚出PHP7的时候Apache吹嘘他的性能如何如何牛逼,我就对我的项目进行了版本适配,所以直接升级到7.4版本应该也不会出现太大的兼容性问题。

至于MySQL我选用了兼容性和稳定性较好的5.x版本,目前面板中5.x版本最新的是5.7.29。

由于接口中使用到了Redis,我也安装了Redis5.0.7。

Web服务器我选用了Nginx,原来那台主机是使用的IIS10.0,现在是CentOS7系统了,肯定不能使用IIS了,我试过使用Apache,发现他太大太慢了,虽然功能很多,但是大部分都用不到,吃系统资源也很多,于是放弃了转而使用Nginx。当然我本地测试的时候还是使用的Apache。

除了这些,我们还有一个很重要的JDK没装。我的接口项目使用的是Spring Boot,我习惯打Jar包发布,不需要外置Toncat。但是面板软件商店中没有纯JDK,所以我们这里手动安装JDK。需要注意的是,由于授权协议的不同,JDK商业收费,我们可以选择免费的OpenJDK。

安装OpenJDK

yum search java | grep -i --color openjdk
yum install -y java-1.8.0-openjdk


安装好以上软件后,我们可以对其进行一些个性化配置。

这些配置大多可以在宝塔面板上进行可视化配置。首先开启Centos的swqp虚拟内存,当然内存极大的土豪随意。开放端口3306,6379,8800,443,分别是mysql数据库,redis数据库,接口端口,SSL端口。这些端口开放后还要去阿里云的ecs控制台进行安全组的配置开放这些端口。当然如果你不进行远程调试的话,就没必要开放3360,6379这些端口了。


配置mysql,修改root密码,创建新用户并赋权。

create user 'wgn'@'%' identified by '密码';
grant all privileges on *.* to 'wgn'@'%' ;
flush privileges;


这里的“%”代表允许所有host访问。

接下来的创建数据库等其他操作就可以使用wgn这个账号进行远程操作了。


接下来配置Redis,这里需要修改的配置不多,可以自行调整,注意把绑定IP改为0.0.0.0就可以允许所有IP访问了。

首先我们先创建一个静态网站测试一下。map.wuguangnuo.cn是一个静态站点。


配置好SSL的证书,这样就可以使用https访问了。


接下来我们对Nginx进行配置,这个站点是地图站,我希望访问https://map.wuguangnuo.cn/下的所有页面都能重定向到index.html。于是做好以下配置


静态网站打开https://map.wuguangnuo.cn,访问正常,网站也启用了https。同时重定向访问也是正常的。


同样的,Vue也当作静态站点操作。

接下来部署PHP项目,新建一个www站点,将PHP源码上传到对应的文件夹下,配置好nginx,访问正常,打开没有兼容性问题。配置域名解析,将www.wuguangnuo.cn和wuguangnuo.cn解析到两个不同的IP地址,70是我新买的服务器,138是旧的香港主机。这样就减轻了单台服务器的压力。


使用Ping域名测试,可以观测到是这两个不同的IP响应了我们的请求。


最后进行springboot项目的部署,上传Jar包。


nohub运行jar:


配置ssl可以在jar内部配置也可以在nginx配置。为了方便统一管理,我在Nginx中进行了以下配置。


配置挺简单的,注意监听80端口和转发到https,监听443端口并配置ssl。

访问 https://api.wuguangnuo.cn,访问成功。连接的数据库和Redis也正常运行。


总结:

配置和部署没有遇到太大的困难,网上相关的资料也很多。

注意各个组件间的版本兼容问题。

接下来的文章可能会介绍每个项目的开发流程和细节优化。