概述
一、如何在linux上部署hexo
准备环境
- 服务器安装NodeJS作为hexo运行环境,命令:yum install nodejs
- 国内直接使用npm可能会慢,使用淘宝npm镜像替代。使用方式是安装cnpm,以后用cnpm代替npm命令,安装命令:npm install -g cnpm --registry=https://registry.npmmirror.com
- hexo需要NodeJs是12以上,需要手动升级一下,命令:
- cnpm install -g n
- n stable
部署hexo
- 安装hexo,命令:cnpm install -g hexo-cli
- 新建文件夹例如blog,进入blog目录,初始化hexo,命令:hexo init
- 安装hexo-server,命令:cnpm install hexo-server --save
运行
- 启动项目
- 前台启动:hexo server
- 后台启动:nohup hexo server &
- 这样使用服务器地址加4000端口就可以访问个人博客了
二、网站备案
想要通过域名访问服务器需要进行备案,下面是我备案过程中遇到的问题。
-
一定要备案么?
答:是的,不进行网站备案,按照法律规定网站无法通过域名对外提供访问。
-
在阿里云网站备案,是不是一定要使用阿里云的服务器?
答:如果备案的服务器是阿里云服务器,需要登录拥有该服务器的账号进行备案,因为备案的时候是会选择账号下的服务器。
-
如果阿里云账号主体和网站主体不是一个人可以备案成功么?
答:应该可以的,阿里云初审通过了。
-
网站备案解析的服务器,可以更换么?
答:这个应该可以的,备案通过后看看。
三、部署nginx(docker)
想要通过免费方式http升级为https的话,先不要采用这种方式部署nginx,请越过这一小节
我现在已经将域名解析到我服务器的IP了,但是通过域名访问的话,默认访问的是80端口,为了自由一点,我决定先部署一个nginx,nginx将80端口流量转发到hexo。
使用docker部署服务有一个非常棒的地方,不用担心该服务依赖的环境,这个环境docker容器已经提供。
有一次我需要去客户现场内网部署nginx,最开始的时候我尝试看怎么直接部署nginx。但是我发现想要部署nginx,就要先在服务器上安装好nginx需要的包,这些包层层依赖,而且多,很绝望。如果是在外网的话,使用yum install也很方便,但是内网,就非常非常艰难了。后来我同事给我说为什么不用docker,我发现,docker真香!
实现步骤如下:
-
在服务器上安装docker,命令:yum install docker -y
-
下载一个最新的nginx镜像,命令:docker pull nginx,随便选一个就行
-
启动nginx容器,命令:docker run -p 80:80 -d nginx,映射容器内80端口到服务器80端口
-
修改配置文件nginx.conf
-
查看nginx容器id,命令:docker ps | grep nginx,第一列,形如cc3f504ae31f
-
进入容器,命令:docker exec -it cc3f504ae31f bash
-
进入nginx.conf所在目录,命令:cd /etc/nginx
-
备份nginx.conf,命令: cp nginx.conf nginx.conf.bak
-
nginx.conf配置参考如下:
user nginx; worker_processes auto; error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; server { listen 80; server_name 你的IP地址; location / { proxy_pass http://你的IP地址:4000; proxy_set_header Host $proxy_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; add_header Access-Control-Allow-Origin *; } } }
-
四、部署nginx(直接部署)
因为我想要免费将http升级到https访问,所以改换成直接部署nginx,这样在使用certbot工具获取并自动更新证书的时候简单一点,关于nginx的部署和证书升级我这里不再写一遍了,请参考以下两个链接:
- Centos 8 nginx安装步骤
- HTTPS 升级指南
五、github
我这里没有选择用官方提供的方式,将新文件推到github。而是自己在github上建一个仓库,然后全部文件push到这个仓库,以后提交新文件之后,再手动push。这样倒是还有个好处,我可以在windows上编辑文件,push到github,再从服务器上pull下来,windows编辑markdown还是更方便的。
这里我遇到一个问题,一开始我是用https方式clone下来的仓库,再提交时遇到了问题提交补上。然后我就改用ssh了。但是使用ssh的话,需要先在服务器上生成公钥,再通过github的Settings中SSH and GPG keys添加上,才能正常clone、pull和push。
服务器上生成公钥命令:ssh-keygen -t ed25519 -C “your_email@example.com”
最后
以上就是故意乌龟为你收集整理的使用hexo搭建个人博客遇到的问题的全部内容,希望文章能够帮你解决使用hexo搭建个人博客遇到的问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复