专栏名称: Java专栏
一个Java、Python、数据库、中间件、业内资讯、面试、学习资源等干货的知识分享社区。
目录
相关文章推荐
半导体行业联盟  ·  阿里 “All in AI” :野心下一个抖音! ·  4 天前  
半导体行业联盟  ·  上海,又一芯片重大并购! ·  4 天前  
51好读  ›  专栏  ›  Java专栏

从零到一快速搭建个人博客网站(域名备案 + https免费证书)

Java专栏  · 公众号  ·  · 2020-12-18 12:20

正文

击上方 Java专栏 ”, 选择“置顶或者星标”


第一时间阅读精彩文章!


点击这段文字获取: 5个可以写到简历的项目实战视频教程(含源码)


作者:yangwqonly

cnblogs.com/winkin/p/14135677.html

前言

为什么选择搭建个人博客?一方面是各个平台经常下架原创文章,另一个方面是为了熟悉整个建站流程。

通过搭建个人博客,我们可以自由的发表文章不用担心下架,而且可以锻炼个人的SEO优化能力,不管是运维还是运营这块对个人的技术提升有着很大的帮助。

本篇文章记录了网站从零到一的过程,希望你也能根据本篇文章搭建出属于自己的网站。大家有疑问可以一起讨论。

下面开始正题。

环境介绍

资源 说明
centos v7.2
docker 快速部署项目环境
nginx 反向代理,同时配置https证书
halo v1.4.2,开源博客项目
Let's Encrypt 免费证书 配置https

效果演示

https://yangwq.cn/

前置环境安装

Docker安装

参考:

https://www.cnblogs.com/winkin/p/14083574.html

halo安装

准备halo配置文件

# 下载配置文件到 /home/halo/.halo 目录
curl -o /home/halo/.halo/application.yaml --create-dirs https://dl.halo.run/config/application-template.yaml

修改配置文件,将数据库调整为mysql,默认是h2(可选)

将上面h2的数据库注释,并把mysql的配置打开,注意,需要提前在mysql建立数据库 halodb,相关的数据库表halo会自动生成,如果mysql 和 halo都是容器创建的,这里配置的mysqlip应该是mysql容器内部的ip。

# 查看mysql容器的ip,mysql-prod替换成mysql容器名称或者容器id
docker inspect --format='{{.NetworkSettings.IPAddress}}' mysql

修改后:

下载并安装halo

# 拉取halo镜像
docker pull ruibaby/halo

# 运行halo
# -p 8090:8090 指定宿主机端口与容器端口映射,这里是将宿主机的8090映射到docker的8090
# -v /home/halo/.halo:/root/.halo 挂载halo配置文件,我们在上一步下载了配置文件在宿主机的/home/halo/.halo
docker run --rm -it -d --name halo -p 8090:8090  -v /home/halo/.halo:/root/.halo ruibaby/halo

## 查看容器状态,确认halo是否启动成功,如果启动失败需要检查下数据库连接
docker ps

# 配置防火墙,注意,阿里云需要同时配置安全组8090端口
# 开放8090端口
firewall-cmd --permanent --add-port=8090/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

正常情况应该如下:

经过上面的步骤创建的halo还不能通过外部ip访问,我们现在配置一个nginx进行代理

nginx安装

# 下载nginx镜像
docker pull nginx
# 启动nginx
docker run -p 80:80 --name nginx -d nginx

# 我们需要nginx使用我们自定义的配置,最方便的方法将nginx现在有的配置复制一份到宿主机目录 /home/nginx 
docker container cp nginx:/etc/nginx /home/nginx

# 移除我们刚创建的nginx,重新以宿主机配置目录启动
docker stop nginx
docker rm nginx
# 编辑 conf.d 下的default.conf 文件,默认转发到halo端口,ip地址为本机ip
location / {
    root   /usr/share/nginx/html;
    index  index.html index.htm;
}
改为,10.0.2.5 为本机ip,通过命令 ip addr 查看,端口是halo的端口:
 location / {
     proxy_pass http://10.0.2.5:8090;
 }

# 重新创建nginx
docker run -p 80:80 --name nginx \
-v /home/nginx/logs:/var/log/nginx \
-v /home/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf.d:/etc/nginx/conf.d \
-d nginx

# 配置防火墙,注意,阿里云需要同时配置安全组80端口
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

# 到这里,我们可以通过ip访问halo了

到这一步如果不能使用ip直接访问,首先确定halo启动成功没,然后查看nginx配置是否正确,最后再检查防火墙和安全组。

域名及网站备案

目前我们只能通过ip访问halo,我们可以通过配置域名进行访问。

首先我们得申请一个域名:

https://wanwang.aliyun.com/domain

申请完成后进行备案:

https://beian.aliyun.com/

备案注意事项:

  • 如果处于异地工作的情况,建议备案地点选择老家,而且手上要有老家的手机号,如果选择异地的话,需要你提供临时居住证之类比较麻烦。
  • 阿里云备案时间在一周左右,一般提交申请会有人找你确认信息,之后按备案流程走就行了。

配置https

一般情况证书是需要购买的,但是也有一些平台提供了免费证书,阿里云也有一年的免费证书,但是阿里云证书只能单个域名使用,如果要通配符证书是需要付费的。而Let’s Encrypt 证书即可以免费申请证书,又支持通配符,是个人开发者的上选。

这里我们通过github项目配置免费证书(也可以手动安装,不过自动安装比较方便,下面两种方式都会提到): letencrypt-certbot

https://github.com/ywdblog/certbot-letencrypt-wildcardcertificates-alydns-au







请到「今天看啥」查看全文