前言碎碎念
其实很早之前就是想搭建自己的个人博客的想法了,只不过一直没下定决心。刚好,毕设购买了阿里云的服务器来做API服务器(APP可以向服务器请求并返回数据),服务器有一年的期限,之后闲置的也是浪费,便是拿来做个人博客的服务器吧。
之后我便是对比了市面上的博客系统,由于我是Java开发,所以不是Java开发的博客系统都不考虑,于是便是发现了几款Java的博客系统。个人选出了自己比较喜欢的两个博客系统solo和halo。
solo博客系统是由一个个人开发者开发的,他是全职做开源,做了十年的大佬,有点佩服他,这博客系统的功能挺多,可以将网站静态化,之后利用gthub或gitee的page服务部署,而且比较美观,但是部署的步骤极为的繁琐,虽然入门的开发文档写得十分的详细,但是真的劝退。。
于是我便选择了halo作为我的博客系统,这个系统基本的功能都有,而且部署十分方便,实际上你只需要运行jar包即可,但部署到服务器上的话,需要懂点linux命令(不过入门开发文档有写,参考一下即可成功部署了)。halo系统我最喜欢的一点就是,直接运行jar包,之后访问localhost:端口号
即可看到界面,之后输入相关的信息,博客就已经部署完毕了。
折腾过程
本篇与halo的部署文档结合参考更佳!
1.下载并部署
根据官方给出的文档,下载配置文件和jar包(官网给出的其实就是将配置文件和jar包放在服务器上,之后用服务器进行部署),各位如果不熟的话,可以用宝塔管理系统,将文件上传到服务器上接口。
之后,按照文档中的配置进行设置开机启动,设置端口号。
启动jar包后,你就可以通过你服务器ip地址+端口号访问到博客的页面了,第一次进入页面即进入配置界面,简单的设置之后即可进入到你博客的首页了。
2.域名解析绑定服务器
域名你可以到阿里云、腾讯云等服务商进行购买,购买域名成功之后,你可以通过域名管理的解析功能,将你的域名映射到你的服务器的ip地址,之后即可通过域名+端口号访问你的博客了
点击进入阿里云域名控制台界面,选择域名解析
选择你的域名,之后点击新手引导,让系统帮你填写
之后你就可以通过www或者原域名访问到你的服务器的ip地址了,比如说你的域名为xx.com
,服务器的ip地址为11.22.33.44
,你可以通过www.xx.com
或者xx.com
访问你的ip地址
你部署了某个服务器应用程序,对应的端口为9000,你访问www.xx.com:9000
就是相当于访问11.22.33.44:9000
如果你不想输入端口号,得将域名进行备案,只有备案通过之后,你才可以使用80和443端口
3.ICP备案和公安联网备案
备案分为两个备案,一是ICP备案,而是公安联网备案
这里填写资料什么的就不多说了,首先是要通过阿里云的初审,阿里云初审还需奥钉钉视频验证(笑哭),之后由管局审核,等了二十多天才审核通过
通过了ICP备案,你的服务器就是开通80和443端口了,其中80端口对应的是http协议,443端口对应的是https协议,你需要去防火墙里,放行这两个端口才行(阿里云服务器控制台和宝塔系统(假如你安装了的话)的安全菜单都要允许通过才行。
你需要进入到服务器的管理后台,选择防火墙,之后进行添加规则操作即可
下图为宝塔系统的端口放行:
ICP备案申请通过之后你可以获得一个备案号,之后再去公安联网备案,以前好像都是需要去公安局备案,现在网络环境下,就可以直接通过网络登录到公安联网备案进行备案。
本质上,通过了ICP备案应该不用公安联网备案了,但是,如果你被查到没有进行公安联网备案,公安会通知你的服务商将你的网站关停...
公安备案填写的资料是需要ICP备案号,除此之外,还需要一些其他的资料,由于我部署的服务器是阿里云,购买的域名也是在阿里云下购买的,填写的资料如下图所示
这里是阿里云帮助文档给出所要填写的信息,至于其他腾讯云等,应该也有相关的说明。
4.使用网址访问博客
你有了ICP备案之后,以及服务器放行了80和443端口之后,你就可以配置了网址访问了。这里我使用的是nginx反代服务器,需要配置一下
server{
listen 80;
#改为你自己的域名
server_name xx.com www.xx.com;
location / {
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#后面的端口号改为你自己部署的端口号
proxy_pass http://127.0.0.1:9090/;
}
我之前使用的宝塔,已经默认安装好了nginx,我们可以把上面的而配置信息保存在某个目录,之后让nginx的主配置文件把我们的配置的文件包含进来即可,具体操作请看图
include /etc/nginx/conf.d/halo.conf;
后面的文件路径改为你的配置文件即可,注意不要漏了分号
不要忘记了重载配置
之后你就可以通过http://xx.com来访问你的博客了
5.设置https访问
https请求与上述类似,你得自己去申请个ssl证书才行,阿里云有免费的证书,不过只能使用一年,使用一年后可以重新申请一个免费的(去阿里云SSL证书管理控制台申请即可)
之后等签发下来后,点击下载,选择nginx部署,会给两个文件,pem
和key
文件
,把这两个文件放在nginx具体路径里就可以了
设置https访问需要去设置域名解析,具体步骤官方文档都有说明,我这里只贴出我的nginx配置
ssl.pem和ssl.key放在nginx目录的config下,当然,你也可以不创建cert文件夹
server {
listen 443 ssl;
#修改域名
server_name xx.com www.xx.com;
ssl_certificate cert/ssl.pem; #将cert/ssl.pem替换成您证书的文件名。
ssl_certificate_key cert/ssl.key; #将cert/ssl.key替换成您证书的密钥文件名。
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
ssl_prefer_server_ciphers on;
location / {
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:9090/;
}
}
server{
listen 80;
#改成你自己的域名
server_name stars-one.site www.stars-one.site;
if ($http_x_forwarded_proto = 'http'){
#return 301 https://$host$request_uri;
rewrite ^(.*)$ https://$host:443/$1 permanent;
}
}
记得重载nginx配置哦,愉快地访问你自己的博客吧~
关于版本更新
从官网下载最新jar包,修改这个/etc/systemd/system/halo.service
文件中的jar包路径为最新的jar包,之后重启service即可
# 修改 service 文件之后需要刷新 Systemd
sudo systemctl daemon-reload
# 重启 Halo
sudo service halo restart
评论区