问题描述

  1. 服务器已经安装 wordpress,默认 IP 解析到了默认域名,如何部署采用hexo制作的 第二个 网站,并系统能通过二级域名访问该hexo网站?

img

  1. 安装第二套系统 hexo 部署,到指定目录,并通过二级域名访问

解决思路

宝塔新建站点

img

服务器设置相关信息

ssh 连接登录远程服务器

更改网站目录权限,可以是其他用户,这里设定为 git 用户

cd /www/wwwroot/
sudo chown -R git:git blog.xx.com
sudo chmod -R 755 blog.xx.com

进入目录,并将当前目录初始化为 git 仓库

cd /www/wwwroot/blog.xx.com
git init --bare

再创建一个文件夹,用来做 Nginx 的根目录,即站点运行根目录,后面会对这个设置

mkdir -p /www/wwwroot/blog.xx.com/blog
chown -R $USER:$USER blog
chmod -R 755 blog

在仓库 blog.xx.com 下创建一个钩子,将静态 HTML 文件传送到服务器的根目录下,即 blog.xx.com/blog下面,钩子代码如下:

sudo vim /www/wwwroot/blog.xx.com/hooks/post-receive

在文件中添加如下shell脚本

git --work-tree=/www/wwwroot/blog.xx.com/blog --git-dir=/www/wwwroot/blog.xx.com checkout -f

保存退出文件后,改变文件权限,让该文件变为可执行文件。

sudo chmod +x /www/wwwroot/blog.xx.com/hooks/post-receive

保存退出,重新启动 Nginx

sudo bt restart nginx

宝塔配置

主要是设置好网站目录,和 运行目录:
img

ssl 证书续签

申请 SSL 证书

在站点中选择SSL,选择Let's Encrypt,这里建议选择DNS验证,选择文件验证诸多问题失败率高,使用DNS验证支持通配而且申请成功率非常高,配置DNS接口去域名的供应商拿AccessKeySecretKey配置好后申请接口,可以先检查一下域名中是否有没必要的txt记录有的话删除避免记录冲突。

21Uo1ali

站点SSL配置

证书部署好后,要在站点配置强制开启HTTPS,这样用户访问就是强制使用https协议访问,注意要开启80与443的端口

IMG

自动续SSL

在计划任务中,添加任务,任务类型选Shell脚本,任务名称就“续签Let’s Encrypt证书”,执行周期选择每天3小时1分钟,执行用户选择root,脚本内容填写

/www/server/panel/pyenv/bin/python3 -u /www/server/panel/class/acme_v2.py --renew=1

选择确定即可,注意前提是需要配置好第一步就是使用DNS验证并且配置好DNS接口。

IMG

参考来源:bt

域名解析

二级域名解析到指定端口号

由于是指定端口的二级域名解析,为了美观,需要中转域名 blog01.xx.com 对端口进行隐藏,方法如下:
img

在域名解析界面,对中转域名进行设置
img

然后,对需要使用的二级域名进行设置
img

这样就可以直接访问 ab.XXX.com,会自动跳转到指定的 http://IP:端口 位置了.
参考:csdn

这里需要注意的是,需要对设置的端口在 ali云服务器 安全组,进行放行,同时在 宝塔 安全组进行放行。

hexo自动上传设置

进入本地的 hexo 根目录 :hexo[master*]$ vim _config.yml ,设置 deploy 参数如下:

repo: ssh://git@47.xx.xx.xx:Port/www/wwwroot/blog.xx.com

这样,以后就可以通过 hexo g && hexo u 自动化的更新和上传了。