无需公网IP——搭建web站点
文章目录
- 概述
- 使用 Raspberry Pi Imager 安装 Raspberry Pi OS
- 设置 Apache Web 服务器
- 测试 web 站点
- 安装静态样例站点
- 将web站点发布到公网
- 安装 Cpolar内网穿透
- cpolar进行token认证
- 生成cpolar随机域名网址
- 生成cpolar二级子域名
- 将参数保存到cpolar配置文件中
- 测试修改后配置文件
- 配置cpolar服务开机自启动
概述
这非常适合设置您的第一个网站,不仅可以学习管理 wordpress 站点,还可以学习 Linux。您将需要一个树莓派(Raspberry Pi)、几个小时和一台计算机来下载映像。 树莓派(RPI) 是学习这些东西的完美设备。
还可以查看 RaspberryPi 的官方项目站点
来源: https://projects.raspberrypi.org/en/projects/lamp-web-server-with-wordpress
使用 Raspberry Pi Imager 安装 Raspberry Pi OS
下载适用于您的操作系统的树莓派镜像工具。它支持大多数操作系统(Windows、Mac 和 Linux)。
https://www.raspberrypi.org/downloads/
- 运行并安装树莓派镜像工具
- 选择 Raspberry Pi OS -> Raspberry Pi OS (32-bit)
- 将 SD 卡插入计算机
- 点击 Write 按钮
设置 Apache Web 服务器
Apache 是一种流行的 Web 服务器应用程序,您可以将其安装在 Raspberry Pi 上以允许它为网页提供服务。
Apache 本身可以通过 HTTP 提供 HTML 文件。通过附加模块,它可以使用 PHP 等脚本语言提供动态网页。
sudo apt-get install apache2 -y
sudo service apache2 restart
测试 web 站点
默认情况下,Apache 将测试 HTML 文件放在 web 文件夹中,您可以从您的 Pi 或网络上的另一台计算机查看该页面。
在 Raspberry Pi 上打开 Apache 默认网页:
-
通过从菜单中选择 Internet > Chromium Web 浏览器打开 Chromium。
-
输入地址 http://localhost
您应该在浏览器窗口中看到:
安装静态样例站点
为了让站点的内容更有意义,我们部署一个简单的静态演示站点–冥想放松站点。
cd /var/www/html/
sudo rm *
sudo wget https://www.cpolar.com/static/downloads/meditation-app-master.tar.gz
sudo tar xzf meditation-app-master.tar.gz
sudo mv meditation-app-master/* .
sudo rm -rf meditation-app-master meditation-app-master.tar.gz
重新在浏览器打开,并刷新站点:http://localhost
这是一个用于冥想的小工具站点,可以用它帮助自己工作之余放松2-10分钟。
它可以选择不同冥想情景及放松时间(2-5-10分钟)。
将web站点发布到公网
目前,这个站点只能在局域网站可以被访问,公网用户是访问不到的。要想所有人访问你创建的漂亮站点,我们需要做如下工作。
安装 Cpolar内网穿透
cpolar官网:https://www.cpolar.com/
cpolar是一款内网穿透工具,可以将您的内网站点暴露到公网上,使所有人可以访问到你的站点。
- cpolar一键安装脚本:(国内用户)
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
- 或短链接安装方式:(国外用户)
curl -sL https://git.io/cpolar | sudo bash
- 查看cpolar版本信息
cpolar version
如果正常显示,则安装成功,如图:
cpolar进行token认证
如果您还没有cpolar账号,请去cpolar官网注册并登录后台获取认证token
cpolar authtoken xxxxxxxxxxxxxxxxxx
生成cpolar随机域名网址
cpolar http -region=cn_vip 80
上图显示,cpolar将内网站点,发布到了一个随机域名网址:https://711d7522.vip.cpolar.cn
- 我们打开浏览器试一下:https://711d7522.vip.cpolar.cn
现在,我们已经发布了内网的web站点到公网,任何人都可以访问到它。
回到终端窗口,按CTRL+C
键,退出cpolar
此时,公网地址不再能被访问。
生成cpolar二级子域名
虽然已经发布到公网,但域名是随机变化的,只适合临时测试使用。如果要长期使用,我们要配置二级子域名。
操作步骤:
- 升级到cpolar基础套餐
- 登录到cpolar后台–>预留–>保留二级子域名,例如添加
dev9
,地区选择VIP China
地区
在前台终端测试域名
cpolar http -subdomain=dev9 -region=cn_vip 80
如果显示正常,则说明我们已经配置好了。
用新的域名在浏览器里访问:https://dev9.vip.cpolar.cn
正常则说明我们的固定二级子域名配置好了。
将参数保存到cpolar配置文件中
刚刚我们在前台运行cpolar程序,关掉后,域名消失,现在我们将参数保存到配置文件中。以支持开机后台自启动运行。
- 编辑配置文件
nano /usr/local/etc/cpolar/cpolar.yml
如图:
上图为样例配置文件,它会配置两个默认隧道:一个ssh隧道和一个website隧道。
参数说明:
authtoken: xxxxxxxxxxxx #认证tokentunnels:ssh: #隧道名称,表示ssh,名称可以自定义addr: 22 #端口号为22proto: tcp #协议tcpregion: cn_vip #地区,cn_vip,可选:us,hk,cn,cn_vipwebsite: #隧道名称,用户可以自定义,但多隧道时,不可重复addr: 8080 #本地Web站点端口proto: http #协议httpregion: cn_vip #地区,cn_vip,可选:us,hk,cn,cn_vip
本例中,我们需要修改如下内容:
- 将website隧道的默认
8080
端口修改为80
- 添加一行
subdomain: "你的二级子域名"
修改后的效果如图:
注意: 配置文件是yaml
格式的,缩进敏感,而且不能有TAB键
。
然后按CTRL+X
,退出,提示你是否保存,回答Y
,确认保存文件路径,回车
测试修改后配置文件
在前台启动所有隧道测试
cpolar start-all
如上图显示,则为正常,按CTRL+C退出
如果报错,会提示配置文件某行有错误,请重新修改。直到类似上图正确输出。
配置cpolar服务开机自启动
- 配置cpolar开机自启动
sudo systemctl enable cpolar
- 守护进程方式,启动cpolar
sudo systemctl start cpolar
- 查看cpolar守护进程状态
sudo systemctl status cpolar
如图说明,启动状态成功
- 重新启动
sudo reboot
重启后,检查cpolar隧道是否仍在线
访问后台–>状态 https://dashboard.cpolar.com/status
如图说明配置成功
转载自cpolar极点云的文章:在树莓派上搭建Web站点
相关文章:
无需公网IP——搭建web站点
文章目录 概述使用 Raspberry Pi Imager 安装 Raspberry Pi OS设置 Apache Web 服务器测试 web 站点安装静态样例站点将web站点发布到公网安装 Cpolar内网穿透cpolar进行token认证生成cpolar随机域名网址生成cpolar二级子域名将参数保存到cpolar配置文件中测试修改后配置文件配…...
swift 项目集成友盟推送
1, 需要用桥接文件 , 不然引用不到依赖库 2, 可以用测试模式测试, 可以debug 3, 测试模式获取deviceToken, 添加测试设备 deviceToken获取方法 func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { le…...
Unity之用Transform 数组加多个空物体-->简单地控制物体按照指定路线自动行驶
文章目录 **原理解释**:**带注释的代码**:实际运用 当你需要实现物体按照指定路线行驶时,你可以通过以下步骤来实现: 原理解释: 路径点:你需要定义一系列路径点,这些点将构成物体行驶的路线。每…...
交换机生成树STP
生成树协议(spanning-tree-protocol,stp):在具有物理环路的交换机网络上生成没有回路的逻辑网络的方法,生成树协议使用生成树算法,在一个具有冗余路径的容错网络中计算出一个无环路的路径,使一部分端口处于…...
3.微服务概述
1.大型网络架构变迁 SOA与微服务最大的差别就是服务拆分的细度,目前大多数微服务实际上是SOA架构,真正的微服务应该是一个接口对应一个服务器,开发速度快、成本高; 微服务SOA能拆分的就拆分是整体的,服务能放一起的都…...
cloud_mall-notes02
1、多条件分页查询page ApiOperation("多条件分页查询xxxx")GetMapping("page")PreAuthorize("hasAuthority(模块权限:权限:page)")public ResponseEntity<Page<实体类>> loadxxxxPage(Page<实体类> page,实体类 domain) {pag…...
前端轻松实现文件预览(pdf、excel、word、图片)
需求:实现一个在线预览pdf、excel、word、图片等文件的功能。 介绍:支持pdf、xlsx、docx、jpg、png、jpeg。 以下使用Vue3代码实现所有功能,建议以下的预览文件标签可以在外层包裹一层弹窗。 图片预览 iframe标签能够将另一个HTML页面嵌入到…...
docker服务器、以及容器设置自动启动
一、docker服务设置自动启动 查看已启动的服务 systemctl list-units --typeservice 查看是否设置开机启动 systemctl list-unit-files | grep enable设置开机启动 systemctl enable docker.service关闭开机启动 systemctl disable docker.service 二、docker容器设置自…...
k8s集群证书过期后,如何更新k8s证书
对于版本 1.21.5,这是我的解决方案: 步骤1: ssh 到主节点,然后在步骤 2 中检查证书。 步骤2: 运行这个命令:kubeadm certs check-expiration rootkube-master-1:~# kubeadm certs check-expiration [c…...
5.6.webrtc三大线程
那今天呢?我们来介绍一下web rtc的三大线程,那为什么要介绍这三大线程呢?最关键的原因在于web rtc的所有其他线程都是由这三大线程所创建的。那当我们将这三个线程理解清楚之后呢?我们就知道其他线程与它们之间是怎样关系…...
@Slf4j报错:Not generating field log: A field with same name already exists
错误出处: 错误原因: 同时使用了Slf4j注解以及LittlecLogger private static final LittlecLogger log LittlecLoggerFactory.getLogger(TimeTrackController.class); 修复方法: 将log改为LOG,便于区分,代码即用到了…...
乖宝宠物上市,能否打破外资承包中国宠物口粮的现实
近日,乖宝宠物上市了,这是中国宠物行业成功挂牌的第三家公司。同时,昨日,宠物行业最大的盛事“亚洲宠物展”时隔3年,于昨日在上海成功回归。 这两件事情的叠加可谓是双喜临门,行业能够走到今天实属不易&…...
Ubuntu安装Apache+Php
环境:ubuntu 22.04 虚拟机 首先更新一下 sudo apt-get update sudo apt-get upgrade安装Apache2: sudo apt-get install apache2 输入y,继续。等着他恐龙抗浪抗浪的下载安装就好了 打开浏览器访问http://localhost/ 安装php: …...
open cv学习 (四)图像的几何变换
图像的几何变换 demo1 # dsize实现缩放 import cv2 img cv2.imread("./cat.jpg") dst1 cv2.resize(img, (100, 100)) dst2 cv2.resize(img, (400, 400)) # cv2.imshow("img", img) # cv2.imshow("dst1", dst1) # cv2.imshow("dst2&quo…...
matlab 检测点云中指定尺寸的矩形平面
目录 一、概述1、算法概述2、主要函数二、代码示例三、结果展示四、参数解析输入参数名称-值对应参数输出参数五、参考链接一、概述 1、算法概述 detectRectangularPlanePoints:检测点云中指定尺寸的矩形平面 <...
HCIP——STP配置案例
STP配置案例 一、简介二、实现说明1、华为实现说明2、其他厂商实现 三、STP原理1、协商原则2、角色和状态3、报文格式4、BPDU报文处理流程4.1 BPDU报文的分类4.2 BPDU报文的处理流程4.3 BPDU报文格式 四、使用注意事项五、配置举例1、组网需求2、配置思路3、操作步骤4、配置文件…...
JCTools Mpsc源码详解(二) MpscArrayQueue
MpscArrayQueue是一个固定大小的环形数组队列,继承自ConcurrentCircularArrayQueue MpscArrayQueue的特点: 环形队列底层数据结构为数组有界 看一下MpscArrayQueue的属性(填充类除外)--- //生产者索引 private volatile long producerIndex; //生产者边界 private volatile…...
前端面试的性能优化部分(13)每天10个小知识点
目录 系列文章目录前端面试的性能优化部分(1)每天10个小知识点前端面试的性能优化部分(2)每天10个小知识点前端面试的性能优化部分(3)每天10个小知识点前端面试的性能优化部分(4)每天…...
C++ STL无序关联式容器(详解)
STL无序关联式容器 继 map、multimap、set、multiset 关联式容器之后,从本节开始,再讲解一类“特殊”的关联式容器,它们常被称为“无序容器”、“哈希容器”或者“无序关联容器”。 注意,无序容器是 C 11 标准才正式引入到 STL 标…...
Python爬虫解析工具之xpath使用详解
文章目录 一、数据解析方式二、xpath介绍三、环境安装1. 插件安装2. 依赖库安装 四、xpath语法五、xpath语法在Python代码中的使用 一、数据解析方式 爬虫抓取到整个页面数据之后,我们需要从中提取出有价值的数据,无用的过滤掉。这个过程称为数据解析&a…...
Linux防火墙报错:Failed to start firewalld.service Unit is masked
Linux防火墙报错:Failed to start firewalld.service: Unit is masked. 1、故障现象: 启动防火墙失败,报错情况如下: systemctl start firewalld # 报错: Failed to start firewalld.service: Unit is masked.原因是…...
前端面试:【Vuex】Vue.js的状态管理利器
嗨,亲爱的Vuex探险家!在Vue.js开发的旅程中,有一个强大的状态管理库,那就是Vuex。Vuex是Vue.js的官方状态管理工具,通过State、Mutation、Action和Module等核心概念,协助你轻松管理应用的状态。 1. 什么是V…...
Kotlin协程runBlocking并发launch,Semaphore同步1个launch任务运行
Kotlin协程runBlocking并发launch,Semaphore同步1个launch任务运行 <dependency><groupId>org.jetbrains.kotlinx</groupId><artifactId>kotlinx-coroutines-core</artifactId><version>1.7.3</version><type>pom&…...
c++ Union之妙用
union的作用基本是它里面的变量都用了同一块内存,跟起了别名一样,类型不一样的别名。 基本用法: struct Union{union {float a;int b;};};Union u;u.a 2.0f;std::cout << u.a << "," << u.b << std::endl…...
JSON的处理
1、JSON JSON(JavaScript Object Notation):是一种轻量级的数据交换格式。 它是基于 ECMAScript 规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写&#…...
matlab使用教程(20)—插值基础
1.网格和散点样本数据 插值是在位于一组样本数据点域中的查询位置进行函数值估算的方法。函数值是根据最接近查询点的样本数据点计算的。MATLAB 根据样本数据的结构,可以执行两种插值。样本数据可以形成网格,也可以是分散的。 网格化的样本数据使得插值…...
Python功能制作之简单的3D特效
需要导入的库: pygame: 这是一个游戏开发库,用于创建多媒体应用程序,提供了处理图形、声音和输入的功能。 from pygame.locals import *: 导入pygame库中的常量和函数,用于处理事件和输入。 OpenGL.GL: 这是OpenGL的Python绑定…...
leetcode-5-最长回文串
题目描述 给你一个字符串 s,找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。 示例 1: 输入:s “babad” 输出:“bab” 解释:“aba” 同样是符合题意的答案。 示…...
二、Oracle 数据库安装集
一、CentOS 安装 OCI下载地址 1. 启动 # 1. 登录服务器,切换到oracle用户,或者以oracle用户登录 su - oracle# 2. 打开监听服务 lsnrctl start# 3. 查看Oracle监听器运行状况 lsnrctl status# 4. 以sys用户身份登录 sqlplus /nolog# 5. 切换用户conn 用…...
【Python】Python中的常用函数及用法
目录 输入输出类型转换引用哈希字符串常用操作判断类型查找替换大小写转换文本对齐去除空白字符拆分和连接 列表常用操作增删改查增删改统计排序 元组常用操作 字典常用操作 范围随机数学比较常用函数三角函数数学常量 输入 input():从键盘等待用户的输入࿰…...
wordpress多板块/今天国内新闻
dfs 必要芝士 queue 头文件 #include<queue> 队列操作 r.push(start) 入队 r.front() 首元素 r.pop() 出队 r.empty() 值为非0 表示空 值为0表示非空 就这么多吧 貌似深度优先搜索和广度优先搜索与先序,层序遍历有联系? 这…...
网站建设审核需要多长时间/seo学校培训
19.闭包是什么?有什么特性?请简单书写一个简单事例? 必包:闭包是指可以包含自由(未绑定到特定对象)变量的代码块;这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义…...
做论坛网站价格/广州白云区最新信息
问题 最新想通过界面批量输入数据到系统里面。 思路 使用自动化测试工具解决这个批量操作到问题。 Selenium 镜像 selenium/hubselenium/node-chrome 他们两者之间的关系,就是hub是管理者,node-chrome是被管理者。hub管理这所有测试集群的容器进程…...
wordpress注册qq邮箱配置/网站设计与制作毕业论文范文
本章考试范围为3.1 3.2 3.3 3.4 首先明确数据链路层在网络中是在物理层的上面从下网上看是在第二层,在数据链路层传输的单位是帧。 网络中的主机、路由器等都必须实现数据链路层,局域网中的主机、交换机等都必须实现数据链路层。 数据链路层的地位&am…...
网站开发助理主要工作/百度竞价关键词优化
什么是数据库同步指在存储类型、格式和计算机系统之间的数据转换,这个名词没有严格的定义,反正就那个意思mysql配置mysql要实现数据库同步,得配置下才行。看是否有my.ini文件,有就直接跳过到第4步,如果没有就跟着我的操…...
移动wordpress文件夹目录/万网域名注册官网查询
题目描述 实现一个特殊功能的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作。 示例1 输入 [[1,3],[1,2],[1,1],[3],[2],[3]] 返回值 [1,2]备注: 有三种操作种类,op1表示push,op2表示pop,op3表示g…...