用树莓派构建一台服务器,永久运行网站

news/2024/5/9 19:13:22/文章来源:https://blog.csdn.net/weixin_40274679/article/details/107887738

目录

前言

树莓派是什么?

1. 用我的话理解

2. 市面上的型号

3. 树莓派 zero w

4. 更多树莓派

树莓派zero w安装系统

1. 准备

2. 第一步下载系统镜像

3. 使用 Win32DiskImager 往内存卡中写入镜像

4. 修改 boot 分区的文件

4.1 新建 ssh 文件

4.2 新建 wpa_supplicant.conf 文件

5. 组装我们的最小主机并连接

6. 优化咱们树莓派的系统

6.1 修改源

6.2 修改时区

6.3 开机自启 ssh

7. 安装 nginx

8. 内网穿透

9. 更多


前言

由于本人在这段时候,看到了一个叫做树莓派的东东,初步了解之后觉得很有意思,于是想把整个过程记录下来。

树莓派是什么?

Raspberry Pi(中文名为树莓派,简写为 RPi,(或者 RasPi / RPI) 是为学习计算机编程教育而设计),只有信用卡大小的微型电脑,其系统基于 Linux。随着 Windows 10 IoT 的发布,我们也将可以用上运行 Windows 的树莓派。
自问世以来,受众多计算机发烧友和创客的追捧,曾经一“派”难求。别看其外表“娇小”,内“心”却很强大,视频、音频等功能通通皆有,可谓是麻雀虽小,五脏俱全。

1. 用我的话理解

用我的话理解就是树莓派就是一台主机,你可以外接显示器,键盘鼠标,u盘等等外设,因为它体积很小,而且又有很多串口和外接的口,可以直接调用很多底层硬件。

2. 市面上的型号

市面上大多是 3 代 B+ 型,淘宝一搜树莓派一大堆都是,价钱纯主板(不要任何外设)在 230+ 左右,有点小贵,超过我的预算,所以我继续寻找廉价的,终于让我发现了一款 100+ 的树莓派。

3. 树莓派 zero w

树莓派 zero w 是一款 mini 的树莓派,体质只有 3b+ 的 1/3。实际到手后,你会发现它真的超级小,超级可爱。以下是我的实物图,你可以看看大小到底有多 mini。

 

你可以看到,最上面是一根普通的黑色签字笔,接下来是一个即插即用型的外接 wifi 网卡,然后是一个 USB 读卡器,最底下的就是我们今天的主角 zero w。它真的超级小,有木有。真的是完美的诠释了那句“麻雀虽小,五脏俱全”的话。

zero w 这款树莓派的主要参数如下:

•  BCM2835 处理器,1GHz 主频,512MB RAM

•  BCM43438 WiFi / BT 芯片

•  micro-USB 电源接口

•  micro-USB OTG 接口

•  miniHDMI 端口

•  复合视频和重置扩展接口

•  脆弱的 CSI 摄像头接口

•  micro-SD 卡座,存放操作系统

•  40-pin GPIO 扩展接口

•  尺寸:65mm*30mm

你别看它的 cpu 只有 1 核,内存只有 512MB,就觉得它可能什么都做不了,但是实际上它的性能还是很好的,用于跑一个网站真的是小 case。

4. 更多树莓派

关于更多树莓派型号或者使用教程你可以去树莓派实验室这个网站,上面有丰富的资源。

树莓派zero w安装系统

1. 准备

你可能提前需要准备的东西如下:

•  16GB or 32GB 的 SanDisk 内存卡(注意是以前那种放在手机上,很小的哦)

•  一根最普通不过的 usb 安卓数据线(not type-c)

•  u 盘格式化工具(推荐使用 SDFormatter)

•  系统烧写工具(Win32DiskImager)

•  树莓派系统(可以去官网下载)

我使用的是 Raspbian Stretch Lite 这个系统镜像,这个系统是官方制作的,lite 是无桌面版的,只有黑漆漆的控制台,优点是体积小,省性能和内存。

名字带有 desktop 的是有桌面 ui 的,对不熟悉 liunx 系统的朋友可能更友好,但是体积很大,占用的性能也会更高。

 

2. 第一步下载系统镜像

下载好你需要的系统镜像后,如下图

 

一开始只有一个 zip 的压缩包,大小大概 360MB 左右,你需要把它解压,得到上图的文件夹。

 

然后进入文件夹可以看到一个 img 的镜像,大小为 1.7GB 左右。

ps:这个官方的 Raspbian 镜像,如果是其他第三方的镜像,可能下载后的压缩包解压后不是 img 镜像,这种情况请另行百度解决。

3. 使用 Win32DiskImager 往内存卡中写入镜像

 

把内存卡插入读卡器后,插入电脑。
打开 Win32DiskImager 软件后,选择 img 镜像,设备选择你的 U 盘,然后点击写入就可以了,写入完成后会弹出成功的提示框。

ps: 我上图没有选择设备,因为的没插入读卡器,仅仅是示范而已

4. 修改 boot 分区的文件

先别急着拔出读卡器,此时,我们电脑可以看到 u 盘中只有一个名为 boot 的分区,大小可能只有 40MB 左右,不要着急,因为 window 不识别内存卡中 liunx 系统的其他分区。 

4.1 新建 ssh 文件

因为我们的 zero w 有一个 mini hdmi 的接口,但是我不需要屏幕,所以需要使用 ssh 连接到 zero w 中的系统,所以需要在第一次开机就能开启 ssh 功能。

我们进入 boot 分区内,然后新建一个名为 ssh 的文件,注意不要后缀名!!!!也不要往里面写任何东西!!

4.2 新建 wpa_supplicant.conf 文件

因为 ssh 连接是需要 ip 地址的,所以我们需要将 zero w 在第一次开机自动连接 wifi,使其和我们的电脑处于一个局域网,这样我们才可以通过 ssh 连接到 zero w 的系统。

同样的在 boot 分区内,新建一个名为 wpa_supplicant.conf 的文件,然后往里面写入如下内容后保存:

country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1network={
ssid="你的wifi名字"
psk="你的wifi密码"
}

 

5. 组装我们的最小主机并连接

取出读卡器中的内存卡,然后插入到 zero w 中,使用一根 usb 安卓数据线连接电源(5V1A)即可。
等待几分钟,期间我们的 zero w 的指示灯会一直闪烁,很正常,等待指示灯常亮的时候,我们去路由器上,查看一下树莓派的 ip 地址。

可以看到我们 zero w 的 ip 为 192.168.0.104,然后使用 ssh 连接工具(推荐使用 putty)连接树莓派,初始账户为 pi,密码是 raspberry。

连接成功,如上图所示。这样我们的系统就正确无误的安装好了。

ps: 如果是手机开启热点当做一个路由器的话,咱们手机下载一个名叫 android terminal 的 app,然后输入 ip neigh 指令,就可以查到连接到手机的设备的 ip 信息了。

6. 优化咱们树莓派的系统

6.1 修改源

因为国外的源,咱们在国内的连接过去网速很慢,所以我们需要修改为国内的源,我修改的是中科大的源。

6.1.1 修改 sources.list 文件

sudo nano /etc/apt/sources.list
--注释其他内容,添加以下:
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/raspbian stretch main contrib non-free rpi

 

6.1.2 修改 raspi.list 文件

sudo nano /etc/apt/sources.list.d/raspi.list
--注释其他内容,添加以下:
deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian stretch main ui
 

6.1.3 执行更新

sudo apt-get update
sudo apt-get upgrade

 

6.2 修改时区

sudo dpkg-reconfigure tzdata

找到亚洲 Asia,然后选择 shanghai 就可以了。

6.3 开机自启 ssh

第一种:

sudo raspi-config

进入选择找到 interfacing option 选择,然后找到 ssh,按回车使能 enable 就可以了。

第二种:
在终端命令行中启动 SSH 服务后,如果系统重启或关机后启动,SSH 服务默认是关闭的,依然需要手动启动,为了方便可以设置 SSH 服务开机自动启动,打开 /etc/rc.local 文件,在语句 exit 0 之前加入:/etc/init.d/ssh start

建议都试试,反之我的是可以了。

7. 安装 nginx

 

#安装
sudo apt-get install nginx
#启动
sudo /etc/init.d/nginx start
#重启
sudo /etc/init.d/nginx restart
#停止
sudo /etc/init.d/nginx stop

打开浏览器访问 192.168.0.104(你的树莓派 ip 地址),可以看到 nginx 的页面,说明安装好了。

我这边上传了我的博客,如下图

 

可以正常的看到页面了,但是这样只能在内网(局域网中)看到,我想让所有人都可以访问怎么办?

 

8. 内网穿透

内网穿透,意思就是将内网(本地)的 web 应用通过 nat 穿透到公网上,从而让别人可以访问到。

内网穿透目前主要由 ngrok 和 frp 两种,都非常好用,国内 ngrok 免费的有 ittun、sunny 和 natapp,这三个都是免费的,前面两个可以自定义域名,后面的需要 vip 版本才可以自定义域名。

我这三种都试过,我发现 sunny 的 arm 版本的 ngrok 客户端在我的树莓派运行不了,ittun 的和 natpp 的 ngrok 都可以,由于需要自定义域名,我使用的是 ittun 的 ngrok_arm 版本的。

使用方法这三者官网都有详细说明,大家自行查看。

这是正常运行时的截图,访问 http://zerow.ittun.com/ 时可以...

因为需要 ngrok 在后台运行,所以我用的是 screen 会话使其可以在后台运行。但是开启自启,还没有实现,万一断电或者断网了,我必须手动去运行一下 ngrok,这是目前没有解决的痛点。

9. 更多

树莓派不仅仅只是可以用于运行一个网站,还有很多很多的功能等待你的开发,可以多去看看树莓派实验室里面,很多大神都写了很多实用的教程。

我的 zero w 状态信息如下:

在上面开启了一个 nginx 和 ngrok 服务,内存剩余还有 250MB,还是很舒服的,cpu 温度也不算高,运行两天了,基本在 37-39 之间。

链接:https://segmentfault.com/a/1190000021143144

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

bilibili解析网站_SEO优化:网站优化推广方案

网站优化推广方案:本文章简单的说明了百度关键词排名计算的规则成果,支持百度排名的因素,简单从的关键词的内外链、网站权重、关键词的布局、关键词的密度、关键词的用户点击率等等九个方面谈了百度关键词排名基本规则。一.SEO优化&#xff1…

建站模板论坛_怎么建贴吧只需几个步骤,你也可以建一个论坛网站

世界那么大,谢谢你来看我!!关注我你就是个网络、电脑、手机小达人Discuz建站可以说是最方便的论坛程序了,使用的网站有上百万个,目前已被腾讯收购,是最受欢迎的论坛软件系统之一。作为开源网站,…

python模拟登录网站_用python实现模拟登录人人网

我决定从头说起。懂的人可以快速略过前面理论看最后几张图。 web基础知识 从OSI参考模型(从低到高:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层)来说&#xf…

spring boot 入门_SpringBoot入门建站全系列(二十一)Mybatis使用乐观锁与悲观锁

SpringBoot入门建站全系列(二十一)Mybatis使用乐观锁与悲观锁一、概述之前有两篇《SpringBoot入门建站全系列(三)Mybatis操作数据库》和《SpringBoot入门建站全系列(四)Mybatis使用进阶篇:动态SQL与分页》介…

帝国网站管理系统后台e/class/config.php不存在,帝国CMS7.0使用常见问题小结

一、7.0版本的数据库配置文件是哪个文件?7.0版本数据库配置文件:/e/config/config.php6.6及以下版本数据库配置文件:/e/class/config.php二、忘记后台登陆认证码怎么办?查看 /e/config/config.php 文件里的“$ecms_config[\’esaf…

seo如何优化文章-知识交流_seo如何优化文章?

很多类型的网站,都不可避免的需使用文章内容来做排名,作为seo行业人员该如何优化文章是当前面临的,一直面临的问题。内容为王的说法一直不过时,合适的文章内容是白帽seo工作的重中之重。很多朋友坚持写原创文章,发现自…

c语言java中间键,《大型网站系统与Java中间件实践》-消息中间件

1. 消息系统的价值1.1没有消息系统的时候假设你负责系统的用户注册模块开发,突然有一天接到产品的要求让你增加注册成功之后发短信任务,此时你屁颠屁颠的找到用户注册部分的代码,然后你快速的在代码后面加上调用短信服务的代码,心…

网络连接异常、网站服务器失去响应_新型DoS攻击或对使用了CDN的网站产生巨大威胁...

在当今全球网络中,CDN服务扮演着很重要的角色,它的缓存系统可以极大缓解原网站的压力,并给访问者提供更好的网络体验。但近期,有安全研究人员发现了一种针对CDN缓存功能的DoS攻击——CPDoS,它有多种变体,不…

nand flash多少次写_这个比QQ空间还古老的网站,是多少网友的精神家园?

你多久没有上网冲浪了?你还记得第一次和因特网的亲密接触吗?仔细算算那些诞生于 1999 年的网站,已经过了二十岁了。这些网站就像一座孤岛,在飞速发展的网络时代,这么多年来一直坚守着自己 QQ 空间式文艺复兴的设计。二…

php网站建设步骤,「php环境搭建」简单6个步骤教会你快速搭建一个网站(windows环境) - seo实验室...

php环境搭建三、配置php环境1、同样php模块选择也是免安装版,直接解压到自己习惯的文件夹中配置即可,提醒站长在官网上下载的时候也要注意系统和VC环境支持。解压路径如下图:进入php的解压目录,找到php.ini-production或者php.ini…

二次元论坛php,Discuz动漫二次元风格网站模板商业版

模板简介Discuz动漫二次元风格网站模板商业版,GBK商业版。1、本模板为门户论坛个人空间形式,其中个人空间模板需要单独购买,点击购买,美化N多默认模板页面2、全新设计的标签页,标签页帖子图文调用3、论坛首页&#xff…

Linux 网站部署——如何部署自己的论坛网站(简单易上手)

首先我们需要部署自己的网站需要的几个工具及服务: 1.云服务器 阿里云、华为云、腾讯云都可以,记下自己的IP地址; 2.X-shell工具; 3.代码包(在这里我们以部署一个开源的BBS网站为例子)。 首先&#xff0c…

Linux网站部署——从零到一部署一个自己的电商网站

上一篇关于部署论坛的网站已经发出,这次我们来部署一下电商网站,前期的准备工作请参考上篇文章:https://editor.csdn.net/md/?articleId114901490 我在这里直接借用了一个云服务器。如果还是自己服务器的同学可以直接使用我们的第一条命令&…

Linux网站服务——静态站点动态站点

网站服务 概念: 网站(Website)是指在因特网上根据一定的规则,使用HTML(标准通用标记语言)等工具制作的用于展示特定内容相关网页的集合。简单地说,网站是一种工具,人们可以通过网站来提供相关的网络服务。…

Linux部署网站域名服务——DNS网站搭建域名购买

概念 域名服务作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。 hosts文件(互联网发展初期的服务) windows系统 C:\Windows\System32\drivers\etc\host…

Linux HTTP网站——网站基础服务详解

HTTP HTTP(Hyper Text Transfer Protocol)超文本传输协议,用于万维网WWW.(World Wide Web)与浏览器的传输协议。(基于TCP/IP通信协议) HTTP工作原理 http协议工作于客户端、服务端架构上&#…

Linux NginxHTTPS——HTTPS介绍、加密算法、SSL协议、HTTP风险、Nginx HTTPS部署(安全的网站部署)

HTTPS介绍 HTTPS(HyperText Transfer Protocol over Secure Socket Layer),Google 为了保证数据安全很早就开始启用了。 近些年互联网巨头,开始大力推行 HTTPS, 国内外的大型互联网公司基本也都已经启用了全站 HTTPS。…

一章——Web网站服务(一)(应用—linux高级管理)

三期总目录链接 目录 1、Apache 的起源 2、准备工作centOS7机器一台 3、把httpd添加为系统服务 4、httpd服务和 dns服务结合使用 域名访问网站 就www.aaa.com为例 常用的全局配置参数 常用的全局配置参数(续) Require配置项的常见语法 1、Apach…

二章——Web 网站服务(二)(应用——linux高级管理)

三期总目录链接 目录 一、基本理论 (一)、客户机地址限制 (二)、用户授权限制 二、实验要求 1、默认情况 2、只允许客户端192.168.1.200访问网站应该如何修改配置文件并验证 3、进行用户授权配置,允许aaa 和bo…

二章——Web网站服务(二)2.2(应用——linux高级管理)

三期总目录链接 目录 一、构建虚拟Web主机 案例1: 构建www.a1.com 和www.a1.com 这种基于域名的虚拟主机 案例2:构建基于地址的虚拟主机 (192.168.1.2 和 192.168.1.12) 案例3: 添加基于端口的虚拟主机 &#xf…