无公网IP搭建 Halo 博客 可全网访问 成本1元
前言
本教程使用 Nginx 配置相关 Http 证书
于 Centos7 系统下通过 内网穿透 来搭建博客 可全网访问
欢迎大家访问我的博客网站 https://blog.mian-ju.cn 留言添加友链
0.环境搭建
0.1 准备工作
- halo-1.4.12 – 优秀的Java开源博客系统
- 服务器**(推荐安装 Centos7 系统)**
- 宝塔面板
- SakuraFrp – 内网穿透
- 一个已经备好案的域名
- 会 SSH 远程连接
0.2 安装JDK
首先通过 ssh 连接上要搭建的服务器
ssh root@你的IP地址
连接上后在服务器中安装 JDK11 当前版本不再支持JDK8
这里使用的是 OpenJDK11
mkdir /home/java
cd /home/java
wget https://download.java.net/openjdk/jdk11/ri/openjdk-11+28_linux-x64_bin.tar.gz
下载完成后解压JDK11的包
tar -zxvf openjdk-11+28_linux-x64_bin.tar.gz
然后去修改一下环境变量
vi /etc/profile
在最后一行后新增两行代码:
export JAVA_HOME:/home/java/jdk-11
export PATH=$JAVA_HOME/bin:$PATH
然后按 ESC 保存退出
:wq
让配置的环境变量立马生效
source /etc/profile
测试环境变量是否配置成功
java -version
出现版本号即是成功
openjdk version "11" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
0.3 关闭防火墙
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #关闭防火墙开机自启
1.Halo 搭建
1.1 更改 Halo 配置
创建.halo的工作目录,在用户目录下,当前是root,~ 是代表当前用户的家目录
mkdir ~/.halo
cd ~/.halo
下载配置文件
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
修改 application.yaml 配置文件
vi application.yaml
配置文件:
server:
port: 8090
#这个是端口号,会在这个端口开启服务
driver-class-name: org.h2.Driver
url: jdbc:h2:file:~/.halo/db/halo
username: admin #h2数据库用户名
password: 123456 #h2数据库密码
#数据库信息自行修改,也可以使用mysql,本教程使用h2数据库
h2:
console:
settings:
web-allow-others: false
path: /h2-console #h2数据库连接路径
enabled: false
admin-path: admin #后台路径
# memory or level
cache: memory #缓存形式,本地(level)和内存(memory)
然后保存退出
:wq
1.2 配置 System 服务
下载配置文件
wget https://dl.halo.run/config/halo.service -O /etc/systemd/system/halo.service
修改下载的配置文件
vi /etc/systemd/system/halo.service
[Unit]
Description=Halo Service
Documentation=https://docs.halo.run
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=USER
ExecStart=/usr/bin/java -server -Xms256m -Xmx256m -jar YOUR_JAR_PATH
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
StandOutput=syslog
StandError=inherit
[Install]
WantedBy=multi-user.target
标红的需要修改
User=USER :因为我们使用的是root,不需要单独给个用户,所以删除
ExecStart=/usr/bin/java -server -Xms256m -Xmx256m -jar YOUR_JAR_PATH
/usr/bin/java是你java所在的路径,我的路径是 /home/java/jdk-11/bin/java
YOUR_JAR_PATH是你 halo-1.4.12.jar 包所在的位置,/home/halo/halo-1.4.12.jar
-Xms256m 和 -Xmx256m 是内存容量,默认是256M,根据自己配置更改
[Unit]
Description=Halo Service
Documentation=https://docs.halo.run
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/home/java/jdk-11/bin/java -server -Xms512m -Xmx512m -jar /home/halo/halo-1.4.12.jar
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
StandOutput=syslog
StandError=inherit
[Install]
WantedBy=multi-user.target
最后我的配置文件是这个样子
修改了配置文件后需要重载 Systemd
systemctl daemon-reload
开机自启 Halo
systemctl enable halo
启动 Halo
systemctl start halo
到这里就可以用浏览器访问你的博客了 地址是 你的服务器IP:8090 进入后会进入引导,跟着引导一步一步走
2.域名
这里我用的是腾讯云的域名:https://www.dnspod.cn/
要备案后才可以进行后续!
2.1 添加域名
完成后点击 管理控制台 — DNS解析 — 我的域名 — 你的域名地址 — 添加记录
因为是端口内网穿透,所以添加两条域名,一条提供给映射后外网访问,一条在内部进行协议配置
我的如下
1.
主机记录=blog #域名前缀,假设域名是 mian-ju.cn blog就是 blog.mian-ju.cn
记录类型=CNAME
记录值=待会内网穿透会给地址
其他默认不动
2.
主机记录=随便给
记录类型=A
记录值=服务器IP地址
其他默认不动
添加完成后确定,并且点击左边SSL按钮,申请ssl证书,待会配置HTTPS会用到,选择免费的
申请完大概3-5分钟,然后把第一个域名的证书下载下来,后期有用
现在你可以通过 第二个域名:8090 来访问你的博客而不需要输入你IP
3.内网穿透
但是现在为止还是只能你的网络访问,不能让世界各地的人都进入你的网站
3.1 注册账号
进入官网注册账号,并实名认证,需要支付1RMB来实名认证
流量不够的话每天可以签到领取,搭个博客还是绰绰有余的
3.2 安装frpc
跟着教程一步一步走,这里就不过多赘述
安装好再去配置System服务
配置完成后可以输入以下命令来操作隧道
systemctl start frpc@你的密钥:隧道ID #启动隧道
systemctl enable frpc@你的密钥:隧道ID #设置开机自启隧道
systemctl disable frpc@你的密钥:隧道ID #关闭隧道开机自启
3.3 隧道创建
选择内地 可建站的,然后选择类型HTTPS隧道
隧道名=#自己定义
本地IP=你的第二个域名
本地端口=HTTPS(443)
绑定域名=你的第一个域名#比如我的是 blog.mianju.pro 不带http://
然后创建完成
3.4 获取隧道的地址值
在隧道列表点击左边的3个点,然后配置文件
将 server_addr 的值给输入到第一个域名的记录值一栏中,然后点击确定,保存完成
3.5 启动隧道
配置完成隧道,启动隧道
systemctl start frpc@你的密钥:隧道ID #启动隧道
4.配置Https协议
每次进网页会提示一个不安全是不是很难看,这个就是因为现在还没有配置HTTPS协议的原因
4.1 安装宝塔
宝塔面板安装:安装教程
引导完后选择环境安装:LNMP --Linux,Nginx,Mysql,PHP的缩写
4.2 添加网站站点
全部环境安装完成后,左边导航栏点击 网站 — 添加站点
输入你的第一个域名然后换行再输入你的第二个域名
第一个域名
第二个域名
然后点击提交
4.3 配置网站SSL
然后点击 编辑 — SSL — 其他证书
刚刚下载的证书解压出来,有个Nginx的文件夹,打开后里面有两个文件
1_你的域名_bundle.crt
2_你的域名_.key
用记事本打开这两个文件
将bundle.crt后缀的文件的内容复制至**证书(PEM格式)**框内
将**.key后缀的文件的内容复制至密钥(KEY)**框内
右上角强制HTTPS选上
保存
4.4 反向代理
网站 — 设置 — 反向代理(在SSL那条导航栏下面)
点击添加反向代理
代理名称=你随意
目标URL=http://127.0.0.1:8090
发送域名=你的第一个域名 #就是给公网 访问的 blog.mian-ju.cn
点击保存
5.尝试访问
5.1 访问地址
现在有3种方式可以访问博客:
https://第一个域名/(公网访问 blog.mian-ju.cn)
https://第二个域名/(第二个域名提示的应该是不安全,不重要,内网访问)
第二个域名提示不安全是因为SSL只配置了blog.mian-ju.cn域名的证书,并没有给第二个域名也配置,证书不适用于它,所以提示不安全
恭喜你,你拥有了自己的博客
如果需要添加友链请先添加本站至友链
友链格式:
title: MianJu
url: blog.mian-ju.cn
avatar: https://bu.dusays.com/2021/09/29/682edd074d0e5.png
description: 艺术源于生活 生活不是艺术