【服务器】利用树莓派搭建 web 服务器

news2024/11/22 21:55:49

5a2585dded9b416fb4ea58637b42ed39.png

  Yan-英杰的主页

悟已往之不谏 知来者之可追  

C++程序员,2024届电子信息研究生


目录

概述

使用 Raspberry Pi Imager 安装 Raspberry Pi OS

设置 Apache Web 服务器

测试 web 站点

安装静态样例站点

将web站点发布到公网

安装 Cpolar内网穿透

cpolar进行token认证

生成cpolar随机域名网址

生成cpolar二级子域名

将参数保存到cpolar配置文件中

测试修改后配置文件

配置cpolar服务开机自启动


@[TOC]

转载自cpolar极点云的文章:在树莓派上搭建Web站点

概述

这非常适合设置您的第一个网站,不仅可以学习管理 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)。

Raspberry Pi OS – Raspberry Pi

  • 运行并安装树莓派镜像工具

  • 选择 Raspberry Pi OS -> Raspberry Pi OS (32-bit)

  • 将 SD 卡插入计算机

  • 点击 Write 按钮

20221117161859

设置 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

您应该在浏览器窗口中看到:

20221117161917

安装静态样例站点

为了让站点的内容更有意义,我们部署一个简单的静态演示站点--冥想放松站点。

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

20221117161925

这是一个用于冥想的小工具站点,可以用它帮助自己工作之余放松2-10分钟。

它可以选择不同冥想情景及放松时间(2-5-10分钟)。

将web站点发布到公网

目前,这个站点只能在局域网站可以被访问,公网用户是访问不到的。要想所有人访问你创建的漂亮站点,我们需要做如下工作。

安装 Cpolar内网穿透

cpolar官网:cpolar - 安全的内网穿透工具

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

如果正常显示,则安装成功,如图:

20221117162007

cpolar进行token认证

如果您还没有cpolar账号,请去cpolar官网注册并登录后台获取认证token

cpolar authtoken xxxxxxxxxxxxxxxxxx

生成cpolar随机域名网址

cpolar http -region=cn_vip 80

20221117162018

上图显示,cpolar将内网站点,发布到了一个随机域名网址:https://711d7522.vip.cpolar.cn

  • 我们打开浏览器试一下:https://711d7522.vip.cpolar.cn

20221117162026

现在,我们已经发布了内网的web站点到公网,任何人都可以访问到它。

回到终端窗口,按CTRL+C键,退出cpolar

此时,公网地址不再能被访问。

生成cpolar二级子域名

虽然已经发布到公网,但域名是随机变化的,只适合临时测试使用。如果要长期使用,我们要配置二级子域名。

操作步骤:

  • 升级到cpolar基础套餐

  • 登录到cpolar后台-->预留-->保留二级子域名,例如添加dev9,地区选择VIP China地区

在前台终端测试域名

cpolar http -subdomain=dev9 -region=cn_vip 80

如果显示正常,则说明我们已经配置好了。

20221117162035

用新的域名在浏览器里访问:https://dev9.vip.cpolar.cn

正常则说明我们的固定二级子域名配置好了。

将参数保存到cpolar配置文件中

刚刚我们在前台运行cpolar程序,关掉后,域名消失,现在我们将参数保存到配置文件中。以支持开机后台自启动运行。

  • 编辑配置文件

nano /usr/local/etc/cpolar/cpolar.yml

如图:

20221117162043

上图为样例配置文件,它会配置两个默认隧道:一个ssh隧道和一个website隧道。

参数说明:

authtoken: xxxxxxxxxxxx #认证token
​
tunnels:
  ssh:              #隧道名称,表示ssh,名称可以自定义
    addr: 22        #端口号为22
    proto: tcp      #协议tcp
    region: cn_vip  #地区,cn_vip,可选:us,hk,cn,cn_vip
  website:          #隧道名称,用户可以自定义,但多隧道时,不可重复
    addr: 8080      #本地Web站点端口
    proto: http     #协议http
    region: cn_vip  #地区,cn_vip,可选:us,hk,cn,cn_vip
​
​

本例中,我们需要修改如下内容:

  • 将website隧道的默认8080端口修改为80

  • 添加一行 subdomain: "你的二级子域名"

修改后的效果如图:

20221117162220

注意: 配置文件是yaml格式的,缩进敏感,而且不能有TAB键

然后按CTRL+X,退出,提示你是否保存,回答Y,确认保存文件路径,回车

测试修改后配置文件

在前台启动所有隧道测试

cpolar start-all

20221117162213

如上图显示,则为正常,按CTRL+C退出

如果报错,会提示配置文件某行有错误,请重新修改。直到类似上图正确输出。

配置cpolar服务开机自启动

  • 配置cpolar开机自启动

sudo systemctl enable cpolar
  • 守护进程方式,启动cpolar

sudo systemctl start cpolar
  • 查看cpolar守护进程状态

sudo systemctl status cpolar

如图说明,启动状态成功

20221117162204

  • 重新启动

sudo reboot

重启后,检查cpolar隧道是否仍在线

访问后台-->状态 cpolar - secure introspectable tunnels to localhost

如图说明配置成功

20221117162155

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/535633.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring的IOC/DI注解开发

文章目录 3.1 环境准备3.2 注解开发定义bean步骤1:删除原XML配置步骤2:Dao上添加注解步骤3:配置Spring的注解包扫描步骤4:运行程序步骤5:Service上添加注解步骤6:运行程序知识点1:Component等 3.2 纯注解开发模式3.2.1 思路分析3.2.2 实现步骤步骤1:创建配置类步骤2…

主题建模-corpora语料库-PCA进行降维

https://colab.research.google.com/drive/1F-1Ej7T2xnUKXSmDPjjOChNbBTvQlpnM?uspsharing 考试 https://colab.research.google.com/drive/1hSRxzFL9cx7PYrHYZeEnT3jRSn8LmQcx?uspsharing 第一题要求 聚类选定的新闻数据。此时,请考虑以下事项。(2分…

算法篇——贪心算法大集合(js版)

455.分发饼干 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有…

Vue收集表单数据和过滤器

目录 收集表单数据 收集表单数据总结 过滤器 过滤器小结 收集表单数据 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><!--vue--><script src"https://cdn.sta…

【C#】GridControl日期字段显示时分秒

系列文章 【C#】单号生成器&#xff08;编号规则、固定字符、流水号、产生业务单号&#xff09; 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/129129787 【C#】日期范围生成器&#xff08;开始日期、结束日期&#xff09; 本文链接&#xff1a;h…

Vue3+elementPlus 表格提示宽度设置无效问题

网上都说这样改 但是我的改了无效&#xff01; 试了下这样就可以了 <style lang"css">.el-popper {font-size: 14px;max-width: 600px; } </style>

【springboot test】springboot 单元测试配置文件加载顺序及覆盖关系

springboot test 配置文件加载顺序及覆盖关系 参照目录结构:1.配置文件加载基础原则:2.application.yml主配置文件加载原则:3.application.yml中指定spring.profiles.active:xxx时,xxx的加载原则:4.使用ActiveProfiles("yyy")时:5.其他自定义配置文件,如xxx.properti…

为什么需要防雷接地,防雷接地的作用是什么

为什么需要电气接地&#xff1f; 您是否曾经在工作条件下使用任何电器时接触过电击&#xff1f;几乎每个人的答案都是肯定的&#xff0c;有时这些电击是轻微的&#xff0c;但有时会对电气和电子设备造成损坏&#xff0c;并可能危及生命。为防止对人的生命和电器造成任何损害&a…

网络计算模式(一)

CDN网络概念 CDN&#xff1a;Content Delivery Network&#xff0c;即内容分发网络。 其目的是通过在现有的Internet中增加一层新的网络架构&#xff0c;将网站的内容发布到最接近用户的网络“边缘”。使用户可以就近取得所需的内容&#xff0c;解决Internet网络拥挤的状况&a…

盘点十大机器人公众号

原创 | 文BFT机器人 一、机器人大讲堂 公众号定位&#xff1a;引领行业发展的新媒体平台 更新频率&#xff1a;1篇主推3篇副推/每日更新 文章内容&#xff1a; 1. 行业市场新动态&#xff08;常作为主推&#xff09; 吸引关注科技市场动态的客户群体 2. 项目、政策 吸引需…

DI93A HESG440355R3为什么电容器分为多种?只有一种电容器不行吗?

​ DI93A HESG440355R3为什么电容器分为多种&#xff1f;只有一种电容器不行吗&#xff1f; 电子产品由不同的电子元件组成&#xff0c;包括电容器、电感器、电阻器、线圈、发电机等&#xff0c;其中电容器是常见的电子元件。电容器按照类别分为多种电容器&#xff0c;常见的有…

Barra模型因子的构建及应用系列十之Leverage因子

一、摘要 在前期的Barra模型系列文章中&#xff0c;我们构建了Size因子、Beta因子、Momentum因子、Residual Volatility因子、NonLinear Size因子、Book-to-Price因子、Liquidity因子、Earning_Yeild因子和Growth因子 &#xff0c;并分别创建了对应的单因子策略&#xff0c;其…

基于Java的医护人员排班系统设计与实现【附源码】

角色分为管理员、医生、护士 登录、注册页面&#xff1a; 工号、姓名、科室、密码、电话、性别、邮箱 管理员功能&#xff1a; 1、个人中心&#xff1a;个人信息、修改密码。 2、科室信息&#xff1a;增删改查&#xff0c;每个科室要有科室人员。 3、医生信息&#xff1a;增删改…

通过chatGPT学习:L2网络和L3网络?

下面的总结是通过chatGPT4进行的。 1、 L2网络和L3网络 L2网络和L3网络是计算机网络中的两种不同的网络类型&#xff0c;它们有一些不同的特点和应用场景。 L2网络&#xff0c;也被称为数据链路层网络&#xff0c; 主要是通过物理地址&#xff08;MAC地址&#xff09;来转发…

.Net6 导出excel使用aspose.cells23.5.0

一、测试代码 internal class Program { static void Main(string[] args) { WorkbookDesigner wb new WorkbookDesigner(new Workbook()); var style new CellsFactory().CreateStyle(); style.Borders.SetColor(C…

计算机视觉——day 92 基于跨领域协作学习的单图像去雨

基于跨领域协作学习的单图像去雨 1. Introduction3. Proposed method3.1 网络架构 4. Experiments and results4.1 数据集和指标4.3 合成图像的结果4.8 建模复杂度和运行时间 5. Conclusion 1. Introduction 深度卷积神经网络(DCNN)在图像解析任务中取得了优异的性能。然而&am…

量化投资 无套利 No-arbitrage

文章目录 量化投资 无套利 No-arbitrageState of Nature市场域 Market Span 套利 Arbitrage无套利和正线性定价规则 No-arbitrage and Positive Linear Pricing RuleImplication 1: One-price PrincipleImplication 2: PositivityImplication 3: AdditivityImplication 4: Homo…

QGIS Desktop与QGIS Server 下载安装

QGIS是一款开源的地理信息系统软件&#xff0c;全称为Quantum GIS。它提供了一系列强大的GIS功能&#xff0c;可以用于浏览、编辑、分析和处理各种地理空间信息。QGIS支持多种矢量、栅格和数据库数据格式&#xff0c;包括ESRI Shapefile、GeoJSON、GML、PostGIS、Oracle Spatia…

基于Kubernetes集群构建大中型企业CICD应用平台(8)--通过jenkins把从远程拉取的代码推送执行其他主机上,然后进行镜像打包并进行部署

一、配置Maven构建代码 代码拉取到Jenkins本地后&#xff0c;需要在Jenkins中对代码进行构建&#xff0c;这里需要Maven的环境&#xff0c;而Maven需要Java的环境&#xff0c;接下来需要在Jenkins中安装JDK和Maven&#xff0c;并且配置到Jenkins服务。 - 准备JDK、Maven压缩包…

Appuploader 常见错误及解决方法

转载&#xff1a;Appuploader 常见错误及解决方法 Appuploader是一款用于上传、管理和分享iOS应用的客户端工具。使用Appuploader可以让您更加便捷地管理和分享您的应用程序&#xff0c;同时也能够提高工作效率。本文将介绍一些常见的Appuploader错误及其解决方法。 1.登录失…