Nginx 的配置系统

Nginx 的配置系统由一个主配置文件和其他一些辅助的配置文件构成。这些配置文件均是纯文本文件,全部位于Nginx 安装目录下的 conf 目录下。
配置文件中以#开始的行,或者是前面有若干空格或者 TAB,然后再跟#的行,都被认为是注释,也就是只对编辑查看文件的用户有意义,程序在读取这些注释行的时候,其实际的内容是被忽略的。
由于除主配置文件 nginx.conf 以外的文件都是在某些情况下才使用的,而只有主配置文件是在任何情况下都被使用的。所以在这里我们就以主配置文件为例,来解释 Nginx 的配置系统。
在 nginx.conf 中,包含若干配置项。每个配置项由配置指令和指令参数 2 个部分构成。指令参数也就是配置指令对应的配置值。

指令概述

配置指令是一个字符串,可以用单引号或者双引号括起来,也可以不括。但是如果配置指令包含空格,一定要引起来。

指令参数

指令的参数使用一个或者多个空格或者 TAB 字符与指令分开。指令的参数有一个或者多个 TOKEN 串组成。TOKEN 串之间由空格或者 TAB 键分隔。
TOKEN 串分为简单字符串或者是复合配置块。复合配置块即是由大括号括起来的一堆内容。一个复合配置块中可能包含若干其他的配置指令。
如果一个配置指令的参数全部由简单字符串构成,也就是不包含复合配置块,那么我们就说这个配置指令是一个简单配置项,否则称之为复杂配置项。例如下面这个是一个简单配置项:

安装

0、环境准备
首先需要你Linux系统有安装过docker、docker安装教程之后我也会补充给大家

1、搜索可用镜像

我们使用 search 命令来搜索需要下载得镜像是否有哪些可用的镜像

  1. [root@Vue /]# docker search nginx

可以看到下面列出了很多有关Nginx的可用镜像、我们一般下载stars最多的那个我们就行下载它了
image-20210512111015369.png
2、拉去取Nginx镜像
我们可以使用 pull 命令来下载指定的镜像

  1. [root@Vue /]# docker pull nginx

下图类似则下载成功了
image-20210512111431683.png

我们来检查一下是否正常下载Nginx镜像、我们可以使用 images来查看已存在的镜像

image.png
我们可以看到Nginx镜像下载成功且也已存在镜像列表中、可以说我们的Nginx基本安装成功了

下面我们来启动容器
3、启动容器
3.1、创建数据卷共享文件目录

  1. 日志文件位置:/home/nginx/log
  2. 配置文件位置: /home/nginx
  3. 资源存放的位置: /home/nginx/html

nginx 容器目录对于如下

  1. 日志文件位置:/var/log/nginx
  2. 配置文件位置: /etc/nginx
  3. 资源存放的位置: /usr/share/nginx/html

然后确定nginx资源对应目录?那么我们可以进入容器里面查看指定的目录是否正常 使用exec 命令可以进入容器内部

  1. [root@Vue /]# docker exec -it c16fe610d66e bash
  2. -it 是交互式环境进入容器
  3. bash 是进入容器内部程序 即内核相当于

3.2、启动基础容器用于资源拷贝

  1. docker run -d --name=nginx nginx
  2. -d 代表进行后台运行容器

运行成功
image.png

查看运行容器的id、可以使用ps 来查看正在运行中的docker 容器

  1. [root@Vue /]# docker ps

可以看到我这里已经有四个容器正在运行中、我们看到image 中的nginx 就是我们运行的nginx容器、container id就是我们需要找的容器id
image.png
拿到容器id后我们进行对nginx容器内的一些文件进行拷贝到宿主机中刚刚创建好的三个目录下来

4、资源拷贝
拷贝文件我们可以使用 cp 来进行拷贝文件到宿主机来

  1. docker cp [容器id]:/etc/nginx /home/nginx #拷贝nginx 容器下的etc/nginx 目录下文件

进行输入以下命令回车后没有出现报错或提示那么就是成功复制下来了

  1. [root@Vue /]# docker cp c16fe610d66e:/etc/nginx /home/nginx
  2. [root@Vue /]# docker cp c16fe610d66e:/var/log/nginx /home/nginx/log
  3. [root@Vue /]# docker cp c16fe610d66e:/usr/share/nginx/html /home/nginx/html

接下来可以自行去对于目录下查看是否有文件了、我这里是已经成功复制下来了已经有文件了
image.png
以上步骤均完成后我们进行正常得启动nginx了
5、删除基础容器
在删除容器时我们需要对正在运行的容器进行停止才能正常删除
我们可以使用 stop 进行停止正在运行中的容器

  1. [root@Vue html]# docker stop c16fe610d66e

成功停止了nginx容器
image.png
删除容器我们可以使用 rm 命令来对容器进行删除

  1. [root@Vue html]# docker rm c16fe610d66e

已经成功删除了nginx容器
image.png

创建正式容器

我们现在所有的步骤都已经配置完成、我们现在是正式的启动nginx并使用到nginx

  1. docker run -d --name nginx -p 8020:80 -p 4403:443
  2. -v /home/nginx/html:/usr/share/nginx/html
  3. -v /home/nginx/log:/var/log/nginx
  4. -v /home/nginx:/etc/nginx
  5. nginx
  6. -p 端口映射 宿主机端口映射到容器端口中 我们就之后访问nginx部署的web程序都是只有宿主机的端口进行访问的
  7. --name 给启动的容器添加标签
  8. -d 后台进行运行
  9. -v 是使用数据卷进行宿主机与容器将文件可以共享、在之后我们需要修改nginx配置后我们只需要在宿主机中的对于文件进行修改后就能直接同步到容器中
  10. -v 宿主机的目录:容器中的目录

启动成功了
image.png

我们来验证一下
在浏览器输入宿主机ip:端口号 我的是阿里云的所有可以大家一起访问、已经正常访问了、nginx就已经安装完成了!!!
image.png