相信很多小伙伴们在平时学习编程的时候都有练习过大大小小的Demo。一般我们都会用Github来管理我们的这些项目。但是光本地运行不行,有时我们需要将它们部署到线上进行访问。在使用阿里云之前,我的做法是将Github本身作为一台服务器,将项目直接部署到Github上进行线上访问。
但是渐渐地我发现这种部署存在三个问题:
于是果断改用阿里云服务器,开启踩坑之旅,在此做一份踩坑记录,也希望给后面学习阿里云服务器部署的朋友们一些解决问题的思路。
步骤:
很显然,我们无法直接通过https://120.26.74.176 进行访问。这个时候,我们需要在新购买的云主机上配置Nginx反向代理服务器。
在配置之前,我们需要先熟悉一下 新朋友CentOs7操作系统。操作它有多种途径,这里我介绍两种:
关于Linux的一些命令,比如 "ll"查看目录下文件、"cd "进入文件夹、 “cd …” 进入上级目录、"mkdir"新建文件夹、vim编辑器相关指令这些都不再赘述,后面都会用到,有需要时直接谷歌搜索一下即可。
进入控制台后,我们就可以正式开始通过命令的形式操作CentOs了。(坑点: 有一个到后面我才恍然大悟的大坑,原来刚开始我们进来的这个目录是"root文件夹",而不是"根目录"。我们"ll"一下,在root文件夹下刚开始是空空如也的。然后我们可以看一下根目录下的路径:)
关于如何在CentOs7上安装Nginx,我是参考的这篇文章,朋友们按步骤点进去一步步操作即可:CentOS 7 下 yum 安装和配置 Nginx,我们只需要操作到文章中的第四步"打开防火墙端口"即可。
这里有几个操作nginx的命令我们需要熟记(在此特别提一下,因为需要经常性地操作):
// 启动服务
sudo systemctl start nginx
// 停止服务
sudo systemctl stop nginx
// 重新加载服务,每次配置之后我们都需要重新加载一下
sudo systemctl reload nginx
// 查看服务状态
sudo systemctl status nginx
好了,经过一番操作,让我们来验证一下Nginx的安装是否成功吧:
在浏览器中输入ip地址,如果出现Nginx的欢迎语就代表我们已经安装成功了。
部署项目的思路是这样的: 首先,我们的项目统一由Github(如果在公司可能就是Gitlab)在git上进行管理。我们在Github上创建一个项目,将其克隆到本地进行开发,开发完成后,我们将打包好的项目push到git上,这些都是常规操作,也是我们每天工作都在干的事情。
现在我们有了阿里云服务器,在服务器上我们也把项目clone下来,当我们准备部署到线上时, 只需要使用git pull把代码拉下来即可,用户就可以直接通过访问线上路径访问我们的项目。
简而言之,就是我们自己操作两台电脑进行协同项目开发。
根据上述思路,我们需要在服务器上安装git
// 进入根目录
cd /
// 创建名为www的文件夹
mkdir www
// 进入www文件夹
cd www
// 克隆项目地址
git clone https://github.com/BlackCodingCat/beauty-resume2020.git
我们可以看到,项目已经克隆到了www文件夹下。以后我们在本地继续提交该项目的代码时,只需git pull将代码拉下来即可。
找到/etc/nginx/conf.d/目录下的default.conf 配置文件:
vim default.conf
用vim编辑器打开default.conf进行编辑:
找到location配置项,该配置项用于配置访问路径。按图示进行配置。
修改完成后,回到根目录下 cd / 重载nginx sudo systemctl reload nginx:
// 回到根目录
cd /
// 重载nginx
sudo systemctl reload nginx
访问 http://120.26.64.176/beauty-resume2020/index.html,此时我们可能会遇到403 Forbidden的错误,这时我们需要修改www文件夹的权限,将其设置为777最高权限:
// 进入根目录
cd /
// 将www文件夹设置为最高级权限
chmod 777 www
// 重新加载nginx
sudo systemctl reload nginx
再次访问 http://120.26.64.176/beauty-resume2020/index.html。项目终于部署成功!!
参考文档: