• 【NGINX--1】基础知识


    1、在 Debian/Ubuntu 上安装 NGINX

    在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。
    更新已配置源的软件包信息,并安装一些有助于配置官方 NGINX 软件包仓库的软件包:

    apt-get update
    apt install -y curl gnupg2 ca-certificates lsb-release debian-archive-keyring
    
    • 1
    • 2

    下载并保存 NGINX 签名密钥:

    curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
    
    • 1

    使用 lsb_release 设置定义操作系统和版本名称的变量,然后创建一个 apt 源文件:

    OS=$(lsb_release -is | tr '[:upper:]' '[:lower:]')
    RELEASE=$(lsb_release -cs)
    echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/${OS} ${RELEASE} nginx" | tee /etc/apt/sources.list.d/nginx.list
    
    • 1
    • 2
    • 3

    再次更新软件包信息,然后安装 NGINX:

    apt-get update
    apt-get install -y nginx 
    nginx
    
    • 1
    • 2
    • 3

    详解
    此次提供的命令可指示高级打包工具(APT)软件包管理系统使用官方 NGINX 软件包仓库。NGINX GPG 软件包签名密钥已下载并保存至文件系统的某个位置,以供 APT 使用。为 APT 提供签名密钥有助于 APT 系统验证仓库中的软件包。lsb_release 命令用于自动确定操作系统和版本名称,用户可以在所有 Debian 或 Ubuntu 发布版本中使用这些指令。apt-get update 命令指示 APT 系统从其已知的仓库中刷新软件包列表,此后您便可以从官方 NGINX 仓库安装 NGINX 开源版。安装后,最后一个命令会启动NGINX。

    2、在 RedHat/CentOS 上安装 NGINX

    在 RedHat 或 CentOS 上安装 NGINX 开源版。
    创建一个名为 /etc/yum.repos.d/nginx.repo 的文件,其中包含以下内容:

    [nginx] 
    name=nginx repo
    baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/ 
    gpgcheck=0
    enabled=1
    
    • 1
    • 2
    • 3
    • 4
    • 5

    修改文件,将 URL 中间的 OS 替换为 rhel 或 centos,具体取决于您的发行版本。分别将版本 7.x 或 8.x 的 OSRELEASE 替换为 7 或 8。然后运行以下命令:

    yum -y install nginx 
    systemctl enable nginx 
    systemctl start nginx
    firewall-cmd --permanent --zone=public --add-port=80/tcp 
    firewall-cmd --reload
    
    • 1
    • 2
    • 3
    • 4
    • 5

    详解
    刚刚为此解决方案创建的文件将指示 YUM 软件包管理系统使用官方 NGINX 开源版软件包仓库。后面的命令将从官方仓库安装 NGINX 开源版,指示 systemd 在启动时启用 NGINX,并告知它立即启动。防火墙命令为 TCP 协议打开端口 80,这是 HTTP 的默认端口。最后一个命令重新加载防火墙,以提交更改。

    3、安装 NGINX Plus

    安装 NGINX Plus。
    请访问 http://cs.nginx.com/repo_setup。从下拉菜单中选择您要将 NGINX Plus 安装到哪个操作系统,然后按照说明进行操作。其安装说明与开源解决方案类似,但是您需要安装一个证书,以便对 NGINX Plus 仓库进行身份验证。
    详解
    NGINX 会及时更新这个仓库安装指南和 NGINX Plus 安装说明。这些说明因您的操作系统和版本而略有不同,但都有一个共同点:您必须从 NGINX 门户获取证书和密钥并提供给您的系统,以便对 NGINX Plus 仓库进行身份验证。

    4、验证安装

    验证 NGINX 是否安装成功并检查版本。
    您可以使用以下命令验证 NGINX 是否安装成功并检查其版本:

    $ nginx -v
    nginx version: nginx/1.21.3
    
    • 1
    • 2

    如本例所示,响应显示了版本。
    您可以使用以下命令确认 NGINX 是否正在运行:

    $ ps -ef | grep nginx
    root 1738 1 0 19:54 ? 00:00:00 nginx: master process
    nginx 1739 1738 0 19:54 ? 00:00:00 nginx: worker process
    
    • 1
    • 2
    • 3

    ps 命令列出了正在运行的进程。通过将该命令导入到 grep 中,您可以在输出中搜索特定词。此示例使用 grep 搜索 nginx。结果显示有两个正在运行的进程:master 和worker。如果 NGINX 正在运行中,您将始终可以看到一个 master 以及一个或多个worker 进程。请注意,master 进程以 root 身份运行,因为 NGINX 只有使用最高权限才能正常运行。

    要验证 NGINX 能否正确返回请求,请使用浏览器向您的机器发出请求或使用 curl。发送请求时,请使用机器的 IP 地址或主机名。如果安装在本地,您可以使用 localhost,如下所示:

    curl localhost
    
    • 1

    您将看到 NGINX 欢迎页面默认的 HTML 站点。

    5、关键文件、目录和命令

    了解重要的 NGINX 目录和命令。
    NGINX 文件和目录

    /etc/nginx/
    /etc/nginx/ 目录是 NGINX 服务器的默认配置根,您可以从中找到指示 NGINX 如何运行的配置文件。
    
    /etc/nginx/nginx.conf
    /etc/nginx/nginx.conf 文件是 NGINX 服务使用的默认配置入口点。此配置文件能够为 worker 进程、调优、日志记录、动态模块的加载以及对其他 NGINX 配置文件的引用设置全局设置。在默认配置中,/etc/nginx/nginx.conf 文件包括顶层 http 代码块,也就是上下文,它提供了下述目录中的所有配置文件。
    
    /etc/nginx/conf.d/
    /etc/nginx/conf.d/ 目录包含默认的 HTTP 服务器配置文件,其中以 .conf 结尾的文件都包含在 /etc/nginx/nginx.conf 文件的顶层 http 代码块中。最佳实践是利用include 语句并以这种方式组织配置,从而保持配置文件的简洁。在某些软件包仓库中,此文件夹被命名为 sites-enabled,配置文件链接到 site-available 文件夹;此惯例已不再使用。
    
    /var/log/nginx/
    /var/log/nginx/ 目录是 NGINX 的默认日志位置,您可以从中找到一个 access.log文件和 error.log 文件。访问日志包含 NGINX 服务的每条请求的条目。如果启用了debug 模块,则错误日志文件包含错误事件和调试信息。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    NGINX 命令

    nginx -h
    显示 NGINX 帮助菜单。
    
    nginx -v
    显示 NGINX 版本。
    
    nginx -V
    显示 NGINX 版本、build 信息和配置参数,这些参数显示了 NGINX 二进制文件中内置的模块。
    
    nginx -t
    测试 NGINX 配置。
    
    nginx -T
    测试 NGINX 配置并将验证后的配置打印到屏幕上。此命令在寻求支持时很有用。
    
    nginx -s signal
    -s 标记向 NGINX master 进程发送信号。您可以发送 stop、quit、reload 和reopen 等信号。stop 信号可立即停止 NGINX 进程。quit 信号会在完成当前正在处理的请求后停止 NGINX 进程。reload 信号可重新加载配置。reopen 信号指示NGINX 重新打开日志文件。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    6、提供静态内容

    使用 NGINX 提供静态内容。
    使用以下 NGINX 配置示例覆盖位于 /etc/nginx/conf.d/default.conf 的默认 HTTP 服务器配置:

    server {
        listen 80 default_server;
        server_name www.example.com;
        location / {
            root /usr/share/nginx/html;
            # alias /usr/share/nginx/html;
            index index.html index.htm;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    详解
    此配置通过 HTTP 在端口 80 上从目录 /usr/share/nginx/html/ 提供静态文件。第一行配置定义了一个新的 server 代码块,这为 NGINX 定义了一个需要侦听的新上下文。第二行指示 NGINX 侦听端口 80,default_server 参数指示 NGINX 使用此服务器作为端口 80 的默认上下文。listen 指令也可以使用一系列端口。server_name 指令定义了主机名或应定向到此服务器的请求的名称。如果配置没有将此上下文定义为 default_server,那么只有当 HTTP 主机请求头与提供给 server_name 指令的值相匹配时,NGINX 才会将请求定向到这台服务器。如果您还没有要使用的域名,则可以通过设置default_server 上下文省略 server_name 指令。

    location 代码块根据 URL 中的路径定义配置。路径或域之后的部分 URL 被称为统一资源标识符(URI)。理想情况下,NGINX 会将请求的 URI 匹配到一个 location 代码块。示例使用了 / 匹配所有请求。root 指令向 NGINX 显示了为给定上下文提供内容时应在何处查找静态文件。在查找请求的文件时,请求的 URI 会附加到 root 指令的值。如果我们为 location 指令提供了 URI 前缀,那么除非我们使用 alias 指令(而非 root),否则该前缀将包含在附加路径中。location 指令能够匹配一系列广泛的表达式。有关更多信息,请访问下方“其他参考资料”中的链接。最后,index 指令为 NGINX 提供了一个默认文件或要检查的文件列表,以防 URI 中没有提供进一步的路径。

    参考资料
    NGINX HTTP location 指令文档

    7、优雅重载

    在保证不丢包的情况下重新加载配置。
    通过使用 NGINX 的 reload 方法,您可以在不中止服务器的情况下有条不紊地重载配置:

    nginx -s reload
    
    • 1

    此示例使用 NGINX 二进制文件向 master 进程发送信号,从而达到重载 NGINX 系统
    的目的。

  • 相关阅读:
    Java—Map
    uniapp 封装进度条组件
    【STM32笔记】HAL库定时器捕获配置、操作及通用函数定义
    手机市场或迎复苏,芯片测试与封测供应链积极应对 | 百能云芯
    JVM监控及诊断工具-GUI篇
    Linux之IFS间隔符、C编程、gdb调试
    软件工程理论与实践 (吕云翔) 第二章软件过程 课后习题及其答案
    zookeeper最基础教程
    python绘制蕨菜叶分形
    032:vue中三元运算, style、class、type、 event等多种场景示例
  • 原文地址:https://blog.csdn.net/qq11771258/article/details/134285293