树莓派上安装Nginx竟如此简单,只需两行代码...

简介: 树莓派上安装Nginx竟如此简单,只需两行代码...

前言:上一篇文章树莓派折腾记-安装系统已经介绍了树莓派上怎么安装系统,同时也给大家推荐了由OPENFANS开源社区 & 树莓派爱好者社区联合出品的Debian-Pi-Aarch64系统,本文就主要介绍怎么在这个系统的安装Nginx。

系统简介

Debian-Pi-Aarch64系统系统共有四种类型,“无桌面基础版”、“无桌面增强版”、“桌面全功能版”以及“深度桌面版”,关于这四种的差异,看下面的表格。

项目 无桌面基础版 无桌面增强版 桌面全功能版 深度桌面
KVM硬件虚拟化支持
虚拟机图形化控制端 X X X
Docker容器支持
CecOS CaaS容器云支持 X
WebGUI管理平台 X X
Web SSH 客户端支持
标准虚拟机套件 X
宝塔虚拟机套件 X

如果你已经熟悉了Linux系统,这列推荐安装“无桌面增强版”系统自带有docker并且默认启动的,省去了安装docker的时间,如果你不熟悉Linux或则你想要安装带桌面的系统,那么可以根据自己的需求来进行选择,如果想一步到位,还是推荐安装“桌面全功能版”。

Nginx的安装

启动docker

Debian-Pi-Aarch64系统默认都带docker的,只不过有的版本默认是不开启了,如果你安装的不是无桌面增强版,那么你可以用以下命令来启动docker

手动开启:systemctl start docker.service
启用开机启动:systemctl enable docker.service

以下命令来停止docker

手动停止:systemctl stop docker.service
禁用开机启动:systemctl disable docker.service

启动之后可以用下面的命令来看下docker的运行状态

systemctl status docker

运行命令后的看到如下图,则说明启动成功。

7701416bb6f62c1441ca3f42244eca9.png

通过docker来安装Nginx

启动docker后,安装Nginx就很简单了,只要一下几步就能成功安装Nginx。

1.通过下面命令拉取Nginx的镜像到本地

docker pull nginx

2.创建并启动Nginx

docker run -d --name mynginx -p 88:80 nginx
  • -d   指定容器以守护进程方式在后台运行
  • --name 指定容器名称,此处我指定的是mynginx
  • -p 指定主机与容器内部的端口号映射关系,格式 -p  [宿主机端口号]:[容器内部端口],此处我使用了主机88端口,映射容器80端口
  • 最后是Nginx镜像的名称

3.查看Nginx容器是否启动成功

docker ps

33d2287cc72987d58079d7d1c07f04d.png

状态Up则说明启动成功。

4.在浏览器输入树莓派ip:88则能看到如下界面

fd2284bc60194dad304a9cc0747b6e7.png

能看到上面的界面,则说明Nginx已经安装成功。

如何修改Nginx的默认配置

但是,现在还有问题,就是我们现在的Nginx是安装在docker环境内的,如果我们想要更改Nginx的默认配置该怎么办呢?有两个方法:

  1. 进入容器内部进行修改
  2. 通过文件映射将docker容器的内Nginx文件映射到主机

下面详细介绍一下这两个方法。

进入容器内部修改配置

进入运行Nginx的docker环境,需要运行以下命令

docker exec -it mynginx /bin/bash
  • exec 命令代表附着到运行着的容器内部
  • -it 是 -i 与 -t两个参数合并写法,-i -t 标志着为我们指定的容器创建了TTY并捕捉了STDIN
  • mynginx 是我们要进入的容器名称
  • /bin/bash 指定了执行命令的shell

执行命令后的界面如下

cda822a3a58ac5aeb2365ec5d78241f.png

进入到nginx容器内部后,我们可以cd /etc/nginx,可以看到相关的nginx配置文件都在/etc/nginx目录下

d20a2aabd8c278d24ec659df2b362a8.png

在上面的图中,我们并没有发现nginx容器内的默认首页html文件目录,这是因为默认首页html文件目录为/usr/share/nginx/html,而日志文件位于/var/log/nginx

到此,就找到了Nginx对应的文件,如果你想要修改对应的文件则可以直接修改了。但是这样毕竟不方面,每次想要修改文件都要进入docker容器内,太繁琐了,下面就介绍一个简单的方法,只要将经常需要修改或则查看的文件映射到主机,以后直接操作映射到主机的文件就可以了。

映射docker容器内的文件到主机

将nginx容器内部配置文件挂载到主机,之后就只需要在主机对应目录修改即可。下面介绍一下操作步骤

1.创建挂载目录

sudo mkdir -p /mnt/nginx/{conf,html,logs}

创建成功后,文件目录如下

663fb8860909026abafde976f6ca6f3.png

2.将容器内的nginx.confdefault.conf文件分别拷贝到主机/mnt/nginx与目录/mnt/nginx/conf下,分别执行以下命令

sudo docker cp mynginx:/etc/nginx/nginx.conf /mnt/nginx
sudo docker cp mynginx:/etc/nginx/conf.d/default.conf /mnt/nginx/conf/

3.查看刚才创建的nginx容器id

docker ps

4eef1c5da10d9ae4061b37d9816e23a.png

4.停止刚才创建的nginx容器

docker stop 74ca40396f6b(容器id)

5.删除刚才创建的nginx容器

docker rm 74ca40396f6b(容器id)

6.执行下面命令,重新创建nginx容器

sudo docker run -d --name mynginx --restart=always -p 88:80 -v /mnt/nginx/nginx.conf:/etc/nginx/nginx.conf -v /mnt/nginx/logs:/var/log/nginx -v /mnt/nginx/html:/usr/share/nginx/html -v /mnt/nginx/conf:/etc/nginx/conf.d --privileged=true nginx
  • -v 挂载目录,格式 -v: 表示将主机目录与容器目录之间进行共享,
  • --privileged=true 容器内部对挂载的目录拥有读写等特权
  • --restart=always 表示失败会重启

7.再次访问树莓派ip:88会出现403界面,如下

f9012d9c6e57a8bf4d08370a976c858.png
这是因为挂载到主机的html文件件里面是空的,现在将我的博客的文件放到html文件夹内,再次访问下,出现以下界面
c51fe5a84f8f9dd66d7d4e05cdc8f6f.png
这里就成功完成了Nginx容器内的文件挂载到主机的操作。

总结

文章首先介绍了怎么在系统的四个版本中选择适合自己的系统,接着介绍了一下怎么开启和关闭系统自带的docker,然后介绍了怎么在docker中安装Nginx,最后为了方便修改Nginx内的文件,介绍了怎么将docker内的nginx文件挂载到本地。

本文完成了在树莓派上安装Nginx,但是还不完美,现在还只能在内网访问我们Nginx中的内容,下篇文章将会介绍怎么通过公网来访问我们的Nginx,真正的将树莓派打造成服务器,敬请期待。

最后,欢迎访问我在树莓派上搭建的博客pi.wizardev.cn:88


相关文章
|
1月前
|
负载均衡 应用服务中间件 Linux
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
这篇博客文章详细介绍了Nginx的下载、安装、配置以及使用,包括正向代理、反向代理、负载均衡、动静分离等高级功能,并通过具体实例讲解了如何进行配置。
154 4
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
|
1月前
|
应用服务中间件 Linux nginx
Mac os 安装 nginx 教程(success)
这篇文章是关于如何在Mac OS系统上使用Homebrew安装nginx及其依赖,并解决安装过程中可能出现的权限问题。
108 0
Mac os 安装 nginx 教程(success)
|
1月前
|
负载均衡 算法 应用服务中间件
Nginx安装及配置详解
Nginx安装及配置详解
|
1月前
|
应用服务中间件 程序员 开发工具
mac下安装nginx
mac下安装nginx
|
1月前
|
应用服务中间件 Linux nginx
CentOS7安装Nginx
CentOS7安装Nginx
|
28天前
|
应用服务中间件 BI nginx
Nginx的location配置详解
【10月更文挑战第16天】Nginx的location配置详解
|
1月前
|
缓存 负载均衡 安全
Nginx常用基本配置总结:从入门到实战的全方位指南
Nginx常用基本配置总结:从入门到实战的全方位指南
256 0
|
1月前
|
应用服务中间件 Linux nginx
Jetson 环境安装(四):jetson nano配置ffmpeg和nginx(亲测)之编译错误汇总
这篇文章是关于在Jetson Nano上配置FFmpeg和Nginx时遇到的编译错误及其解决方案的汇总。
89 4
|
7天前
|
存储 负载均衡 中间件
Nginx反向代理配置详解,图文全面总结,建议收藏
Nginx 是大型架构必备中间件,也是大厂喜欢考察的内容,必知必会。本篇全面详解 Nginx 反向代理及配置,建议收藏。
Nginx反向代理配置详解,图文全面总结,建议收藏
|
20天前
|
应用服务中间件 API nginx
nginx配置反向代理404问题
【10月更文挑战第18天】本文介绍了使用Nginx进行反向代理的配置方法,解决了404错误、跨域问题和302重定向问题。关键配置包括代理路径、请求头设置、跨域头添加以及端口转发设置。通过调整`proxy_set_header`和添加必要的HTTP头,实现了稳定的服务代理和跨域访问。
104 1
nginx配置反向代理404问题