当前位置:首页 » 云服务器 » 使用树莓派搭建服务器

使用树莓派搭建服务器

发布时间: 2023-06-26 11:45:32

‘壹’ 树莓派可以做网站的服务器吗带数据库的那种。可以的话有教程吗。注:做一个个人网站

树莓派可以安装这个LAMP系列,但Apache 和 Mysql对于树莓派这个小小的机器,太重了,主要是消耗内存多\速度慢\占用磁盘大(约200M吧),所可以选择安装一个轻量级的Web服务器:
nginx + php + sqlite
nginx:是个轻量级的Web服务器,是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,上nginx的并发能力确实在同类型的网页服务器中表现较好。

SQLite:是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。

很简单直接安装即可,如果卡住追问我就好了

‘贰’ 树莓派搭建文件服务器

https://www.raspberrypi.org/downloads/raspberry-pi-os/

安装 Etcher 之后启动 Etcher,插入 SD 卡、选择要安装的 img 文件、选择 SD 卡对应的磁盘分区
https://www.balena.io/etcher/

① 新建一个ssh空白文件,放到root目录下,树莓派开机会自动启用
② 网络优先选择有线网络
③ 无线网络
将刷好 Raspbian 系统的 SD 卡用电脑读取。在 boot 分区,也就是树莓派的 /boot 目录下新建

具体详情看下面
https://shumeipai.nxez.com/2017/09/13/raspberry-pi-network-configuration-before-boot.html

方法1:利用路由器软件查看IP地址

方法2:

ssh连接默认用户名:pi 密码:raspberry

方法3:IP Scanner

1.切换 root权限 sudo su
2.编辑下列文件

连接raw.githubusercontent.com失败
step1 :
在 https://site.ip138.com/raw.Githubusercontent.com/
输入raw.githubusercontent.com查询IP地址
step2 :
sudo nano /etc/hosts
你查到的ip地址,香港的就行 raw.githubusercontent.com
比如:
151.101.76.133 raw.githubusercontent.com

OpenMediaVault项目地址:
https://github.com/OpenMediaVault-Plugin-Developers/installScript

执行安装脚本

step1:
输入树莓派的IP地址
初始用户名:admin
密码:openmediavault
step2:
1.连接硬盘
2.文件系统—>卸载硬盘
3.磁盘—>擦除
4.文件系统—>新建 文件系统选择EXT4
5.挂载—>应用
6.共享文件夹—>新建一个文件夹 设置权限
7.SMB/CIFS —>启用
8.共享—>添加共享

mac登陆
前往:连接服务器 smb://树莓派的ip地址
windows
我的电脑—>右键—>映射网络驱动器—>找到共享的文件夹

‘叁’ 树莓派4B+ Centos7 部署k3s集群工具

kubernetes用于大型集群管理,而k3s属于kubernetes的一个轻量级版本,常用于嵌入式设备使用。现把它安装到树莓派上使用。

这里用到树莓派的系统是:CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-4-2009-sda.raw,型号是4B+,8g内存。
树莓派初次启动需要扩容,并且做一些基本调整:

cgroup是linux用来对进程分配cpu、内存资源的工具,需要在启动系统时开启他,k3s会用到。
在/boot/cmdline.txt后加入这个,然后reboot

k3s是一个轻量级的k8s,适用于树莓派这种嵌入式设备。

这个脚本跑完的时候,会把k3s添加到systemd里面,可以通过systemctl status k3s来查看运作状态。启动成功就可以使用啦

官方参考: https://rancher.com/docs/k3s/latest/en/installation/ha-embedded/

等它重启个好几次之后,基本就成功了。

如果一直失败,可以输入命令刷一下iptable缓冲
iptables --flush
iptables -tnat --flush

等第二个结点加入后,在任意结点执行命令,都能查看到已有的2个Server(Master)结点了

当Server结点数大于等于3个且为奇数时,集群才可以实现高可用。
大于等于3是因为k3s使用了Raft算法来实现一致性,而Raft算法的容崩率为1/3,也就是只要集群中有2/3台机器正常运作,集群就能正常运作,所以3台机器是最低要求;要奇数个结点是因为Raft算法过程中有一个很重要的随机投票选Leader的流程,结点们通过定期投票选举出一个Leader角色,然后其他结点在它的任期内就向他同步数据,这个时候如果结点数是偶数,那么容易出现平票问题,选不出leader,并且,崩溃后集群进行数据恢复过程中,实现一致的方法是多数服从少数,如果是偶数Master结点,且刚好被分割成2个结点规模一样的集团,就没办法恢复数据了[裂开],所以需要奇数个结点以避免权力平分问题。
以上为个人理解。

有兴趣的同学可以一起探讨这类共识算法,与此类似的还有联盟链的PBFT类算法,比特币PoW算法等等。

因为集群并非开放式集群,加入集群需要获取一个token作为校验。这个token可以从Master服务器上获取。(手动加入的话,仅需要使用相同的K3S_TOKEN参数启动即可。)

这样,结点就正常连接上啦:

关闭k3s进程后,后台还留存一些服务占用着端口,需要用官方脚本关闭他们

可以flush一下iptables,等他自己重启就行了。

有可能发生了一些冲突,可以试下重装k3s-agent

目前系统已经伴随k3s安装的一些软件:
crictl :类似与docker的命令行工具,比如:

k3s :封装了kubeneters基本工具在里面的集成,如使用kubectl:

这里示范部署一个最简单的web应用

--net host 代表与本机享受同一个网络命名空间

这里可以在docker容器内开启ssh服务: https://blog.csdn.net/Leo_csdn_/article/details/96150534

做好docker镜像后,就可以部署到集群上了。

等一会儿就能在pods列表里面看到了:

但这时候,这个pod并没有对外开放,只能在集群内部相互访问,通过get services命令查看集群的服务,发现并没有我们的hello-node服务。

expose命令其实是创建了一个service,用于给这个pod提供访问入口。
(如果使用--type=LoadBalancer,则代表一个deployment上管理的所有POD进行均衡负载,但这里还没用上deployment,第四章节会使用到)
等一会儿,pod上就有一个结点IP的对外端口,供外部访问了。

运行结束后,刚启动过的pod和service就不见了,服务也停止了。

docker容器,其实就是一个运行的轻量级系统,里面可以跑我们的业务应用。
而POD则是代表容器的集合,一个POD可以运行多个容器,一台机器上可以运行多个POD。
POD未必是一个对外开放的服务,他可能只是内部计算的程序,默认只能集群内部通信,所以还有Service的概念,用于让POD对外开放端口,供外部访问。这里的service本质上是个集群内部的负载均衡器,用来给同一个Deployment分流;对应的还有Ingress,外部负载均衡器,用于给多个Deployment分流。
而Deployment顾名思义,就是一次部署的抽象实例,比如说,现在需要部署一个3台机器均衡负载的nodejs业务应用,那么这个部署任务则代表一个deployment实例。

很快,我们可以看到POD和deployment的部署情况,都已经正常运作。

进入容器后可以使用基本linux命令,也可见8080端口已经被我们的node应用占用了。

但是此时service还没有他们,也就是正处于无法提供外部服务的状态。

这里对一个deployment里面的3个pod启动了个默认均衡负载服务,暴露出来的一个端口是30057,访问可通。
也能够通过logs命令查看控制台输出的日志。

因为deployment实例中包含了pod的部署配置,所以删除deployment时,k3s就会直接把pod也删除掉。
但service并不在deployment部署的范围内,所以需要同步删除它,在删除命令中通过","与deployment分割开来即可。
至此已经把刚起来的服务全部关闭掉了。

这里我们看到3个Server(Master)结点由于需要维护集群高可用,对CPU持续20%左右的消耗,内存也需要一个G左右。而Agent(Wroker)结点只需要执行部署任务,所以对内存与CPU的需求都相对低一些,仅维持在10%左右的CPU和半个G左右的内存消耗。

参考: https://zhuanlan.hu.com/p/120171512
参考: http://kubernetes.kansea.com/docs/hellonode/

‘肆’ 如何用树莓派搭建个人 web 服务器

Apache + MySql + Php.

1、安装Apache

Apache可以用下面的命令来安装
sudo apt-get install apache2

Apache默认路径是/var/www/

其配置文件路径为:/etc/apache2/

可以通过:sudo vi /etc/apache2/ports.conf修改监听端口号

重启服务生效:sudo service apache2 restart

2、安装mysql

sudo apt-get install mysql-server
安装过程中,会出现一个提示符让你输入一个密码。
这个密码是mysql root用户的密码。

3、安装PHP

输入下面的命令,就可以安装PHP 5,以及PHP访问mysql数据库所需要的库。

sudo apt-get install php5

sudo apt-get install php5-mysql

4、测试

安装完成后,可以在浏览器中输入你路由器的IP或域名,就可以访问你的网站了。

你应该能看到一个页面显示“It works”,但是没有其它内容。

创建一个/var/www/index.php

5、外网访问

这里使用蒲公英组建异地局域网实现外网访问

先将蒲公英安装包预先上传至树莓派(路径:/home/oray/下载/PgyVPN_CentOS_2.0.0_x86_64.rpm)

通过cd命令进入存放蒲公英安装软件的目录,输入rpm命令进行安装;

cd 下载/
rpm -ivh PgyVPN_CentOS_2.0.0_x86_64.rpm

安装成功后,任意路径下输入“PgyVistor”命令即可调出交互界面,按照界面指示输入账号进行登录,可以选择打开自动登录。

之后,外网设备同样安装蒲公英客户端,用同一账号登录就可以访问树莓派的Web服务了~

‘伍’ 树莓派搭建好web服务器后怎么关联域名

1、做成web服务器需要满足:域名或者公网ip,电脑安装配置web服务,开启80端口允许访问,网站程序。2、域名或者公网ip,这一点一般家用宽带没有固定的公网ip,常用的动态域名解析花生壳,科迈动态解析,建议申请使用花生壳动态域名解析,并设置到路由器上,这样网站的访问域名是花生壳的子域名。3、如果有公网固定ip,建议购买一个域名解析到这个ip上,这个公网ip可以在电脑直接设定。web绑定,防火墙允许80端口就可以了。4、电脑安装配置web服务,这个条件比较好实现,找个服务器操作系统,如win2003系统,安装上iis组件就可以了,默认80就打开了,然后再配置一下程序需要的环境。5、如果.net程序就安装netframwork相应版本,如果php就配置php+mysql环境。6、家用宽带默认80端口在路由器不开放的,需要在路由器上做端口映射,将个人电脑ip80端口通过宽带路由映射出去。7、网站程序,自己会开发了可以自己做,不会了到网上下载一些开源程序就可以了。

‘陆’ 如何用树莓派搭建服务器

方法/步骤

1
在树莓派上安装linux系统,到官网下载系统压缩包,推荐使用raspbian。

2
如果在windows下安装,需要下载win32diskimager,解压系统,将解压出来的系统映像写到内存卡(内存卡最好大点,推荐8G以上的内存卡)。
3
如果在Linux系统下安装,先输入命令:sudo fdisk -l
查询内存卡的分区,一般是/dev/sdb。
把系统映像解压到家目录下/home/***,输入命令:
sudo dd bs=1M if=~/2016-02-26-raspbian-jessie-lite.img of=/dev/sdb
这步按你自己的实际情况操作。
看到以下输出就成功写入了。

4
把内存卡装入树莓派,开机启动,第一次会需要配置系统,可以按默认设置直接启动进入系统。
5
安装Apache。apache服务器一般在linux软件源列表有,可以用apt安装。
在安装可以先更新一下apt的软件列表,以确定安装的软件是最新。
输入命令:sudo apt-get update
更新完毕可以正式安装apache了。
输入命令:sudo apt-get install apache2

6
安装mysql。这个也是软件列表中的软件,所以直接用apt安装。因为我们是使用服务器端应用,输入以下命令安装:
sudo apt-get install mysql-server

7
安装PHP。
输入命令:sudo apt-get install php5
php还需要对数据库进行操作,所以还需要安装php5-mysql
输入命令:sudo apt-get install php5-mysql

8
注册一个域名,用nat123将你的域名与你的IP进行域名解析。若是内网则还需要内网映射。
9
在浏览器输入打开你的网址,网页正常显示服务器就搭建成功了。

‘柒’ 智慧家庭 - HA(1) - 在树莓派上架设 Home Assistant

本文索引:

Home Assistant (以下简称 HA) 是一个开源的智能家居网关项目,它可以将市面上所有支持的智能硬件设备整合到一起进行统一管理,并提供了默认的 Web UI。HA 社区开发了海量组件以支持市面上主流的设备,在 IoT 中扮演了大脑的角色。在家庭服务器上架设 HA 有多种实现方式,官方也制作了对应的系统镜像 Hass.io ,并推荐使用“树莓派3B+”作为其宿主机器。

为了验证预期效果,最好提前准备好以下设备:

通过 Docker Image 安装及更新一种服务免去了为该服务准备依赖环境的繁琐步骤, HA 官方推出了对应的 Docker Image 且支持树莓派的 CPU 架构,本文主要介绍通过 Docker 安装 HomeAssistant 。如果你不喜欢 Docker ,可以参考 Install Home Assistant 以其他方式安装。

使用 Docker 安装 HA 是非常简单的,官方提供了支持 Raspberry Pi 3 Docker Image 和“ 安装指南 ”:

参数 /path/to/your/config:/config 映射 container 的 /config 至本地主机的物理路径,此处我选择了 ~/.homeassistant 。如果希望安装指定版本的 Image,参考“ HA 在 Docker Hub 上的 Tag 列表 ”选择版本,例如 0.69.1:

安装完成后, HomeAssistant 的 container 已经开始运行:

查看刚刚指定的配置文件目录,出现了以下文件及目录:

config 目录(此处为 ~/homeassistant/ )下的 configuration.yaml 是配置文件的入口点,其他由 yaml 为扩展名的配置文件均是为了实现独立管理而单独分离出来的文件,可在 configuration.yaml 文档中找到如下入口载入这些配置文件:

8123 是 Web UI 的默认端口,尝试在浏览器中输入 http://{ip-address-to-raspberry}:8123 访问,得到如下结果:

HA 会自动查找接入同一网络中的智能设备,是因为 configuration.yaml 中默认配置了 Discovery 组件:

一切正常之后,每次重启树莓派必须手动执行 docker container start [Container ID]/NAME 的方式来启动 HA 服务,我们需要将其做成服务或加入开机启动脚本,编辑 /etc/rc.local 文件:

重启树莓派, HA 开机启动成功,至此,一个基本款的家庭 HA 搭建就完成了。

HA 目前仍然在快速迭代中,对应的 Docker Image 也会同步放出。要更新以 Docker Container 运行的 HA 实例,只要重新拉取最新版本的 Image 即可:

热点内容
机器人编程培训哪家好 发布:2025-02-09 04:37:44 浏览:305
上海怎么学习java 发布:2025-02-09 04:26:39 浏览:20
erp系统搭建备用服务器 发布:2025-02-09 04:07:38 浏览:943
戴尔服务器在bios怎么配置管理ip 发布:2025-02-09 04:01:53 浏览:548
小鱼易连云存储 发布:2025-02-09 03:59:47 浏览:87
正在限制访问 发布:2025-02-09 03:47:17 浏览:901
架设数据库 发布:2025-02-09 03:41:29 浏览:964
imacpro哪个配置最好 发布:2025-02-09 03:32:29 浏览:251
用编程对话 发布:2025-02-09 03:23:43 浏览:86
自助解压球 发布:2025-02-09 03:17:37 浏览:319