阿里云部署

  |  

摘要: 本文记录在阿里云上部署自己的网站的过程

【对数据分析、人工智能、金融科技、风控服务感兴趣的同学,欢迎关注我哈,阅读更多原创文章】
我的网站:潮汐朝夕的生活实验室
我的公众号:潮汐朝夕
我的知乎:潮汐朝夕
我的github:FennelDumplings
我的leetcode:FennelDumplings


1. 购买实例

首先领取优惠券:优惠券地址,然后在阿里云 • 云小站上选一个实例。

比较常见的实例有 ECS云服务器和轻量应用服务器,

  • ECS云服务器:阿里云明星产品,可以结合VPC、SLB负载均衡、云数据库等云产品实现高可用架构,支持集群部署

  • 轻量应用服务器:集成一站式域名解析、网站发布、安全、运维、应用管理等功能,使用门槛低;不支持集群部署

如果后续相关学习会进行集群部署,需要买 ECS 云服务器,轻量级服务器并不支持,拓展性太小。如果是一般的架站,那么新手站长建议选择轻量应用服务器,因为轻量应用服务器是5M峰值宽带,并磁盘存储方面是40G的SSD云盘

我选的是优惠最大的轻量应用服务器,1核2G,5M峰值带宽,SSD云盘40GB,每个月1000G流量包(1000 * 1024 / 5 = 204800秒 = 56小时)。原价是一年1500左右,优惠之后是一年96,并且它上面说可以以优惠价续费3次,相当可以了。

之后就可以在管理控制台看见机器了。

2. 配置安全组规则

有的实例默认不授权80端口的访问的,则要手动配置。(打开阿里云服务器管理控制台->点击左侧安全下的防火墙按钮->点击右侧的添加规则)

3. 配置服务器环境

(1) Nginx

1
yum install -y nginx

启动服务器:

1
2
systemctl start nginx
systemctl enable nginx

/etc/nginx/ 是 nginx 默认的配置路径

(2) 服务器路由

安装并启动服务器后,就可以尝试使用自己的电脑去访问服务器的公网IP。如果前面的步骤成功的话,公网IP可以打开一个nginx的默认网页。

我想要让这个地址指向我的网站,而不是nginx的默认网址,就需要我们去改nginx的配置文件。阿里云不同的实例安装 Nginx 的时候给的版本可能不同,配置文件位置可能会不一样。我的配置文件在 /etc/nginx/nginx.conf

最好不要直接该这个文件,而是创建一个新的文件,然后采用include的方式,将新文件包含进nginx.conf中,这样扩展性更好。

先创建新目录 mkdir -p /etc/nginx/myhost,在新目录下新建文件website.conf

1
2
3
4
5
6
7
server{
listen 80;
root /home/www/website; 网站目录存放的地址
server_name ...; 如果暂时没有域名就填阿里云的公网ip,以后有了再改回来;
location /{
}
}

然后修改 /etc/nginx/nginx.conf,在 include /etc/nginx/conf.d/*.conf; 这一行下面添加:

1
include /etc/nginx/myhost/*.conf;

按照配置文件中 root 的路径新建文件夹

1
2
mkdir -p /home/www/website 
chmod -R 777 /home/www

如果要添加新的网站,就可以在myhost目录下新建一个conf文件,然后在 include 进 nginx.conf 里。

(3) nodejs

1
2
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
yum install -y nodejs

能打印版本号则安装成功

1
2
node -v
npm -v

(4) git

1
yum install git

添加 git 用户

1
adduser git

修改 /etc/sudoers,先改文件权限

1
chmod 740 /etc/sudoers

root ALL=(ALL) ALL 后面添加一行

1
git     ALL=(ALL)       ALL

退出后,将权限改回去。

1
chmod 400 /etc/sudoers

设置git用户的密码

1
sudo passwd git

切换到git用户,然后在 ~ 目录下创建.ssh文件夹

1
2
su git
mkdir -p ~/.ssh

生成公钥密钥文件:

1
ssh-keygen

此时在目录 ~/.ssh 下就会有两个文件,分别是 id_rsaid_rsa.pub

复制公钥并修改权限

1
2
3
cp id_rsa.pub authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

然后从本地以 ssh 的方式链接服务器,下面命令的 … 填写服务器的公网 IP

1
ssh -v git@...

注:查看公网 IP 的命令

1
curl ifconfig.me

最后显示 Welcome to Alibaba Cloud Elastic Compute Service ! 则登录成功了。

创建 git 仓库,并且新建一个 post-receive 钩子文件

1
2
3
cd ~
git init --bare blog.git
vi ~/blog.git/hooks/post-receive

钩子文件输入

1
git --work-tree=/home/www/website --git-dir=/home/git/blog.git checkout -f

保存并修改文件权限

1
chmod +x ~/blog.git/hooks/post-receive

至此服务端配置已完成。

4. 本地的操作

(1) 安装 nodejs

(2) 安装 Hexo

(3) 修改 _config.yml

1
2
3
4
5
deploy:
type: git
repo: git@这里改为服务器公网IP:/home/git/blog.git
branch: master
message:

然后 hexo clean && hexo g && hexo d

5. 完成部署

在服务器上重启 nginx

1
nginx -s reload

6. ssh免密

服务器打开 RSA 认证。首先在服务其端编辑 /etc/ssh/sshd_config

1
2
3
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

然后重启 sshd

1
2
systemctl stop sshd.service
systemctl start sshd.service

在本地 id_rsa.pub 的内容复制到服务端 /home/git/.ssh/authorzied_keys

修改权限

1
2
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorzied_keys

7. 后续工作

  • 域名
  • 备案
  • Https

Share