当前位置: 首页 > news >正文

CentOS使用Docker搭建Halo网站并实现无公网ip远程访问

在这里插入图片描述
🔥博客主页 小羊失眠啦.
🎥系列专栏《C语言》 《数据结构》 《C++》 《Linux》 《Cpolar》
❤️感谢大家点赞👍收藏⭐评论✍️


在这里插入图片描述
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

文章目录

    • 1. Docker部署Halo
      • 1.1 检查Docker版本
      • 如果未安装Docker可参考
      • 已安装Docker步骤:
      • 1.2 在Docker中部署Halo
    • 2. Linux安装Cpolar
      • 2.1 打开服务器防火墙
      • 2.2 安装cpolar内网穿透
    • 3. 配置Halo个人博客公网地址
    • 4. 固定Halo公网地址

本文主要介绍如何在CentOS 7系统使用Docker部署Halo个人博客,并结合cpolar内网穿透工具实现公网远程访问本地搭建的网站。

Halo是一款基于Java的开源建站工具,具有简单易用、灵活性高、插件丰富等优点。可以做博客的软件平台有很多,像大家熟知的 WordPress 、Hexo、Typecho,对于计算机专业的人来说,他们会根据自己的需求选择适合的平台,但对于小白来说Halo虽然没有功能没有老牌的博客平台那么全面,但是操作简单,博客界面也很简洁美观。

真人女up分享如何快速本地部署一个简洁美观的个人Halo博客网站

0b78a413f513086c5dd5095f540f9fd

1. Docker部署Halo

1.1 检查Docker版本

  • **本地环境操作系统:**CentOS 7 安装Docker

    如果未安装Docker可参考

    安装软件包(提供实用程序)并设置存储库

    $ sudo yum install -y yum-utils
    $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    

    安装Docker引擎

    sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    

    启动Docker

    sudo systemctl start docker
    

    通过运行映像来验证 Docker 引擎安装是否成功

    sudo docker run hello-world
    

    已安装Docker步骤:

  • 启动Docker:

 systemctl status docker
  • 检查docker版本
docker -v
  • **检查docker compose版本:**确保2.0以上版本
docker compose version
  • **下载Halo镜像:**在docker hub下载Halo-V2.10版本镜像
docker pull halohub/halo:2.10

1.2 在Docker中部署Halo

  • 创建挂载目录
mkdir -p /data/halo && cd /data/halo

07a005be5cd19fdf5a377210cf5cc4c

  • 创建Halo容器:

Halo 2与1.x 版本不兼容;

此命令默认使用自带的 H2 Database 数据库,另外可以额外单独使用Mysql数据库进行连接。

docker run -it -d --name halo -p 8090:8090 -v /data/halo/.halo2:/root/.halo2 halohub/halo:2.10

dd6d2a9d946f02352574cd914fe3413

  • 查看halo容器状态:检查halo容器状态,确保halo容器正常启动
docker ps

0e79a5a0e6b242e6a6e73543831ccd7

  • 检查halo容器日志: 检查halo容器运行日志,确保halo服务正常启动。
docker logs halo

d2379dad6f69ba006bea146afc6b874

  • 查看本地IP地址
ifconfig
  • 进入Halo初始化页面

访问地址:http://192.168.149.142:8090/console/setup,将IP替换为自己服务器IP地址。

**站点名称:**myweb
**邮箱:**admin@qq.com
**用户名:**admin
**密码:**自定义
点击初始化即可

a0f433681aae3d111b7523508784e38

  • **登录Halo:**输入账号和密码,登录halo,进入到仪表盘界面

e05facc1f24d0ea066d9a9757fd4fe8

4e37c2c4e250ebfa4bc69eb97dc3b6b

接下来举个例子我们创作一篇文章,在Halo后台管理页面,文章模块,点击“新建”

05f5f06359138c94a5dd5e9e743b14b

编辑完文章后,点击发布,将文章进行发布,在文章列表中即可看到发布过的文章

c5d2a7df807cf778f743226dc7f93a3

接下来本地浏览器访问http://192.168.149.142:8090/,本地服务器IP:8089,看到halo前台首页已经成功显示发布文章

e7b8f9a91bbcd888d9c8c36f331f587

我们成功在本地部署了Halo,通过访问挂载的8089端口即可看到Halo首页界面,并创作了第一篇文章,如果我们想把创作好的个人博客发布至公网分享给身边人点击查看,那么就需要借助cpolar内网穿透工具了,接下来我们安装cpolar内网穿透工具,实现无公网环境远程访问!

2. Linux安装Cpolar

2.1 打开服务器防火墙

启动防火墙

systemctl start firewalld

查看防火墙状态

systemctl status firewalld

centos7 防火墙添加端口:【单个】

firewall-cmd --zone=public --add-port=9200/tcp --permanent

重新载入

firewall-cmd --reload

查看

firewall-cmd --zone=public --list-ports

2.2 安装cpolar内网穿透

上面在本地Docker中成功部署了Halo,并局域网访问成功,下面我们在Linux安装Cpolar内网穿透工具,通过Cpolar 转发本地端口映射的http公网地址,我们可以很容易实现远程访问,而无需自己注册域名购买云服务器.下面是安装cpolar步骤

cpolar官网地址: https://www.cpolar.com

  • 使用一键脚本安装命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar

cpolar安装成功后,在外部浏览器上访问Linux 的9200端口 即:【http://局域网ip:9200】,使用cpolar账号登录(如没有账号,可以点击下面免费注册),登录后即可看到cpolar web 配置界面,结下来在web 管理界面配置即可

3. 配置Halo个人博客公网地址

点击左侧仪表盘的隧道管理——创建隧道,创建一个Halo的公网http地址隧道!

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择http
  • 本地地址:8090 (本地访问的地址)
  • 域名类型:免费选择随机域名
  • 地区:选择China

点击创建

51428fa8d798a6f09244ff9567aa312

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https

d8fb5e5727a167bc7a527fbebfbd944

使用上面的Cpolar https公网地址,在任意设备的浏览器进行访问,即可成功看到Halo首页界面,这样一个公网地址且可以远程访问就创建好了,使用了cpolar的公网域名,无需自己购买云服务器,即可发布到公网进行远程访问!

image-20240109105141668

小结

如果我们需要把自己的个人博客长期发布至公网,分享给别人查看,由于刚才创建的是随机的地址,24小时会发生变化。另外它的网址是由随机字符生成,不容易记忆。如果想把域名变成固定的二级子域名,并且不想每次都重新创建隧道,可以选择创建一个固定的http地址来解决这个问题。

4. 固定Halo公网地址

我们接下来为其配置固定的HTTP端口地址,该地址不会变化,方便分享给别人长期查看你的博客,而无需每天重复修改服务器地址。

配置固定http端口地址需要将cpolar升级到专业版套餐或以上。

登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称

bf1dd6a42148579307e2dae72055abc

保留成功后复制保留成功的二级子域名的名称

edd09daaed4aa7183b057b271331157

返回登录Cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

98b73f50633de7c58fe3484439751ed

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新(注意,点击一次更新即可,不需要重复提交)

d2eeffd306da1d18e1c98884a2e45fa

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名

d68fa5856079ee39d18b5e909fb6697

最后,我们使用固定的公网https地址访问,可以看到访问成功,这样一个固定且永久不变的公网地址就设置好了,随时随地都可以把个人博客分享给其他人了!

ade1b323d51ab81f7458d0fa22cf9ee

在这里插入图片描述

相关文章:

CentOS使用Docker搭建Halo网站并实现无公网ip远程访问

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默&…...

【JVM】垃圾回收算法

📝个人主页:五敷有你 🔥系列专栏:JVM ⛺️稳中求进,晒太阳 垃圾回收算法 Java是如何实现垃圾回收的呢?简单来说,垃圾回收就做两件事 找到内存中存活的对象释放不在存活对象的内存&…...

如何和将原始request的Header中的值传递给openfeign请求的Header? 以及又如何获取openfeign请求中Header中的值

如何和将原始request的Header中的值传递给openfeign请求的Header? 以及又如何获取openfeign请求中Header中的值 如何和将原始request的Header中的值传递给openfeign请求的Header参考 [https://www.jb51.net/article/282522.htm](https://www.jb51.net/article/28252…...

Flink 侧输出流(SideOutput)

🌸在平时大部分的 DataStream API 的算子的输出是单一输出,也就是某一种或者说某一类数据流,流向相同的地方。 🌸在处理不同的流中,除了 split 算子,可以将一条流分成多条流,这些流的数据类型也…...

C语言中关于#include的一些小知识

写代码的过程中,因为手误,重复包含了头文件 可以看到没有报错 如果是你自己编写的头文件,那么如果没加唯一包含标识的话,那么编译器会编译报错的。如果是系统自带的头文件,由于其每个头文件都加了特殊标识&#xff0c…...

DSP芯片 机器码下载方法 【主要 “扯” 用Uniflash下载的方法】

还是以德州仪器的TMS320F28335芯片为 “栗子”,说说这事儿。 编制好的程序经过开发环境可以编译成扩展名为 .out 文件,这个文件就是DSP可以运行机器码,我们把这个文件下载到 DSP芯片中的程序区, 下载好了,这个芯片原…...

速盾网络:CDN用几天关了可以吗?安全吗?

在使用CDN(内容分发网络)时,有时候会考虑暂时关闭或暂停使用CDN服务的情况。但是,对于关闭CDN服务的时间长短以及安全性问题,很多人可能存在疑问。在本文中,我们将讨论CDN使用中关闭几天是否安全以及相关注…...

MR混合现实情景实训教学系统在高空作业课堂中的应用

高空作业是一项高风险的工作,对于从业者来说,不仅需要具备专业的技能,还需要有丰富的实践经验。然而,传统的课堂教学往往只能通过理论讲解和模拟训练来传授知识,无法提供真实的实践环境。而MR混合现实情景实训教学系统…...

Windows系统中定时执行python脚本

背景:本地Windows系统指定目录下会有文件的修改新增,这些变化的文件需要定时的被上传到git仓库中,这样不需要每次变更手动上传了。 首先编写一个检测文件夹下文件变化并且上传git仓库的python脚本(确保你已经在E:\edc_workspace\data_edc_et…...

HashMap 源码学习-jdk1.8

1、一些常量的定义 这里针对MIN_TREEIFY_CAPACITY 这个值进行解释一下。 java8里面,HashMap 的数据结构是数组 (链表或者红黑树),每个数组节点下可能会存在链表和红黑树之间的转换,当同一个索引下面的节点超过8个时…...

WebStorm 2023:让您更接近理想的开发环境 mac/win版

JetBrains WebStorm 2023激活版下载是一款强大而智能的Web开发工具,专为提高开发人员的生产力而设计。这款编辑器提供了许多先进的代码编辑功能,以及一系列实用的工具和插件,可帮助您更快地编写、调试和测试代码。 WebStorm 2023软件获取 We…...

java面试题:数字与字母的映射表

前言 好记性不如烂笔头。 问题: 现在有一个数字与字母的映射表,且有以下规则: 映射表: 数字 字母 3 A 7 B 9 C 规则: 1.碰到当前数字时,使用字母替换,例如,3-> A 2.碰到当前数…...

Jmeter教程-JMeter 环境安装及配置

Jmeter教程 JMeter 环境安装及配置 在使用 JMeter 之前,需要配置相应的环境,包括安装 JDK 和获取 JMeter ZIP 包。 安装JDK 1.JDK下载 示例环境为Windows11环境,读者应根据实际环境下载JDK的安装包。 JDK下载地址: Java21 下载 …...

十大基础排序算法

排序算法分类 排序:将一组对象按照某种逻辑顺序重新排列的过程。 按照待排序数据的规模分为: 内部排序:数据量不大,全部存在内存中;外部排序:数据量很大,无法一次性全部存在内存中,…...

IP协议及相关技术协议

一、IP基本认识 1. IP的作用 IP在TCP/IP模型中处于网络层,网络层的主要作用是实现主机与主机之间的通信,而IP的作用是在复杂的网络环境中将数据包发送给最终目的主机。 2. IP与MAC的关系 简单而言,MAC的作用是实现“直连”的两个设备之通信…...

小红书x-s算法及补环境 单旋转验证码

前言 大家好呀!新的一年,先祝大家新年快乐咯.祝大家逆向,风控都一把过咯. 新年第一篇文章,后续会持续更新哦! 春晚见证了中国经济的新风口,今年春晚互联网企业赞助商就两家,小红书和京东.小红书类似国外的ins,有预感未来小红书会大火,所以写了这篇文章,有需要的加我,联系方式…...

代码检测规范和git提交规范

摘要:之前开发的项目,代码检测和提交规范都是已经配置好的,最近自己新建的项目就记录下相关配置过程。 1. ESlint配置 2013年6月创建开源项目,提供一个插件化的JavaScript代码检测工具,创建项目是生成的eslintrc.js文…...

Elasticsearch:什么是搜索引擎?

搜索引擎定义 搜索引擎是一种软件程序或系统,旨在帮助用户查找存储在互联网或特定数据库中的信息。 搜索引擎的工作原理是对各种来源的内容进行索引和编目,然后根据用户的搜索查询向用户提供相关结果列表。 搜索引擎对于希望快速有效地查找特定信息的用…...

人工智能几个关键节点:深蓝,AlphaGo,ChatGPT,Sora

近30年,人工智能几个关键节点:深蓝,AlphaGo,ChatGPT,Sora 深蓝: 1997年,深蓝击败卡斯帕罗夫的比赛是通过一系列复杂的算法和策略实现的。深蓝的开发团队使用了一种名为“暴力搜索”的技术&…...

WordPres Bricks Builder 前台RCE漏洞复现(CVE-2024-25600)

0x01 产品简介 Bricks Builder是一款用于WordPress的开发主题,提供直观的拖放界面,用于设计和构建WordPress网站。它使用户能够轻松创建自定义的网页布局和设计,无需编写或了解复杂的代码。Bricks Builder具有用户友好的界面和强大的功能,使用户可以通过简单的拖放操作添加…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络&#xf…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...

【Linux】Linux 系统默认的目录及作用说明

博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...