Ngixn配置

一、安装

1. Ubuntu

  1. 安装准备文件

    1
    sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring

    如果安装出错,可以尝试更新一下apt-get 具体问题具体分析

    1
    sudo apt-get -y update
  2. 导入官方 Nginx 签名密钥,以便 apt 可以验证包的真实性。获取密钥:

    1
    curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
  3. 验证下载的文件是否包含正确的密钥:

    1
    gpg --dry-run --quiet --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg

    输出完整密钥

    1
    2
    3
    pub   rsa2048 2011-08-19 [SC] [expires: 2024-06-14]
    573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
    uid nginx signing key <signing-key@nginx.com>

    如果签名不一致,请删除该文件。

  4. 在apt仓库设置稳定的Nginx版本

    1
    2
    3
    echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
    http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

    如果需要使用最新版的Nginx,运行以下命令

    1
    2
    3
    echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
    http://nginx.org/packages/mainline/ubuntu `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list
  5. 将我们的包设置为仓库首选

    1
    2
    echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
    | sudo tee /etc/apt/preferences.d/99nginx
  6. 安装Nginx

    1
    2
    sudo apt update
    sudo apt install nginx

2. Centos

  1. 安装准备

    1
    sudo yum install yum-utils
  2. 配置安装源,创建名为 /etc/yum.repos.d/nginx.repo 以下内容的文件:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    [nginx-stable]
    name=nginx stable repo
    baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
    gpgcheck=1
    enabled=1
    gpgkey=https://nginx.org/keys/nginx_signing.key
    module_hotfixes=true

    [nginx-mainline]
    name=nginx mainline repo
    baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=https://nginx.org/keys/nginx_signing.key
    module_hotfixes=true
  3. 安装

    1
    sudo yum install nginx
  4. 默认使用稳定 Nginx 包,如果需要使用最新版的Nginx,运行以下命令

    1
    sudo yum-config-manager --enable nginx-mainline
  5. 当提示接受 GPG 密钥时,验证指纹是否匹配 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62,如果匹配,则接受它。

二、使用

1. 命令

  1. 启动

    1
    2
    3
    4
    5
    6
    7
    nginx

    # 如果不能启动则找到Nginx的安装位置
    whereis nginx

    # 启动 以实际位置为准
    /usr/sbin/nginx

    查看是否启动

    1
    ps -aux | grep nginx

    访问 (能看到Welcome to nginx!则启动正常)

    1
    curl http://localhost
  2. 停止

    1
    2
    3
    nginx -s stop	# 快速关机
    # 或
    nginx -s quit # 关闭
  3. 重新加载配置文件

    1
    nginx -s reload
  4. 重新打开日志文件

    1
    nginx -s reopen

四、配置文件

1. 配置文件位置

1
2
3
/etc/nginx/nginx.conf
# 查找命令
find / -name nginx.conf

2. 配置文件内容

  三部分

  1. 全局块:

    1
    worker_processes  1;

    配置服务器整体运行的配置指令 比如 worker_processes 1;处理并发数的配置

    这是 Nginx 服务器并发处理服务的关键配置,worker_processes 值越大,可以支持的并发处理量也越多,但是 会受到硬件、软件等设备的制约

  2. events 块:

    1
    2
    3
    events {
    worker_connections 1024;
    }

    影响 Nginx 服务器与用户的网络连接 比如 worker_connections 1024; 支持的最大连接数为 1024

  3. http 块

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    http {
    include mime.types;
    default_type application/octet-stream;

    sendfile on;

    keepalive_timeout 65;

    server {
    # 监听端口
    listen 80;
    # 服务名称
    server_name localhost;

    location / {
    root html;
    index index.html index.htm;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root html;
    }

    }
    }

    这算是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。 需要注意的是:http 块也可以包括 http 全局块、server 块。

    1. http块

      http 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。

    2. server块

      这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了 节省互联网服务器硬件成本。 每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。 而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。 1、全局 server 块 最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或 IP 配置。 2、location 块 一个 server 块可以配置多个 location 块。 这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称 (也可以是 IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓 存和应答控制等功能,还有许多第三方模块的配置也在这里进行。