在一台 VPS 上部署两个 nginx 站点

本文介绍怎样在 vps 上面增设一个站点。

首先,将新站点的域名指向同一个服务器 ip 地址,在 namecheap 增加两条 A 记录:

  1. [新增的] docs.jakehao.com
  2. [原来的] www.jakehao.com

第二步需要登陆 vps 配置 nginx,由于我使用 ubuntu,nginx 的配置文件 nginx 管理在下面两个目录里面:

  1. /etc/nginx/sites-enabled: 生效的 nginx 配置文件,通常使用 ln -s 创建 symbolic link 指向 /etc/nginx/sites-available/ 下面的文件。
  2. /etc/nginx/sites-available: 这个目录包括被 sites-enabled 指向的文件

我发现由于每个站点的 nginx 配置都跟站点特性有关系,所以我喜欢将配置文件放到站点 git 目录下管理。

第三步因为使用了 let’s encrypt 提供 https 访问,还需要跑一下这个命令启用新站点的 https 访问。

sudo certbot --nginx

最后,重载一下 nginx:

nginx -s reload

另外,每个站点我都会都使用类似下面这样的脚本来部署:

#!/bin/bash

# 站点 ip
SERVER=10.10.10.10

# Make static blog
jekyll build

# Copy everything from html to remote server
rsync -avzr -e "ssh -p [ssh_port]" --rsync-path="sudo rsync" ./_site/ [user_name]@$SERVER:/var/www/html/

# Copy nginx config
rsync -avzr -e "ssh -p [ssh_port]" --rsync-path="sudo rsync" ./nginx.config [user_name]@$SERVER:/etc/nginx/sites-available/blog
Posted 2020-02-01

More writing at jakehao.com