hexo部署到服务器
默认熟悉hexo、服务器相关知识,并且之前是操作部署过GitHub Page,现在想部署到自己服务器上面的bloger
服务器
下载git、nginx
yum install -y nginx git
添加ssh密钥
mkdir -p ~/.ssh touch ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorzied_keys chmod 700 ~/.ssh vim ~/.ssh/authorized_keys #将自己本地.ssh文件下的id_rsa.pub公钥复制到authorized_keys中去
创建git仓库并使用git-hooks实现自动部署
sudo mkdir -p /data/rep #新建目录,这是git仓库的位置 sudo mkdir pp /data/hexo cd /data/rep #转到git仓库的文件夹 sudo git init --bare blog.git #创建一个名叫blog的仓库 sudo vim /data/rep/blog.git/hooks/post-update #将下面内容复制进去 git --work-tree=/data/hexo --git-dir=/data/rep/blog.git checkout -f
配置nginx配置
#监听443端口 server { listen 443 ssl; server_name 域名; #如果不配置ssl证书,则忽略或注释ssl相关的配置 #证书文件名称 ssl_certificate /容器内地址; #私钥文件名称 ssl_certificate_key /容器内地址; ssl_session_timeout 5m; #请按照以下协议配置 ssl_protocols TLSv1.2 TLSv1.3; #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; charset utf-8; location / { proxy_ssl_server_name on; proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2; proxy_ssl_session_reuse off; #一定是容器内部地址,如果挂载了文件,需要去查看对应的路径 root /容器内地址; index index.html index.htm; #try_files $uri $uri/ index.html; } #图片缓存时间设置 location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ { expires 10d; } } #监听80端口 server { listen 80 ; server_name 域名; #强制将http重定向为https请求 return 301 https://$host$request_uri; }
如果是用docker部署的nginx镜像服务则:
docker restart nginx
如果是直接部署nginx服务则:
nginx -t nginx -s reload
解析域名
本地
本地环境默认安装node、npm、git
修改根目录下的config文件
deploy: type: git repo: root@ip地址 :/data/rep/blog.git branch: master
执行一键三连
hexo cl && hexo g && hexo d
到服务器查看是否推送最新代码到指定的git仓库
cd /data/hexo ll #查看最新更新时间是否是刚更新的
同步此文件内容到nginx挂载的html文件中
rsync -avz /data/hexo/ /data/nginx/page/hexo/
查看nginx目录下的文件是否更新
访问测试,打开浏览器,输入域名看是否正常