欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > nginx全局配置文件分析(nginx.conf)

nginx全局配置文件分析(nginx.conf)

2025/2/24 22:03:15 来源:https://blog.csdn.net/weixin_47759543/article/details/145262564  浏览:    关键词:nginx全局配置文件分析(nginx.conf)

文章目录

  • 原文内容
  • 内容解释
    • Nginx 配置文件详解
      • 1. 全局配置
      • 2. 动态模块加载
      • 3. 事件处理配置
      • 4. HTTP 配置
        • 4.1 日志格式
        • 4.2 访问日志
        • 4.3 文件传输优化
        • 4.4 连接保持
        • 4.5 MIME 类型
        • 4.6 加载其他配置文件
      • 5. 默认服务器配置
        • 5.1 默认服务器块配置
        • 5.2 location 配置
      • 6. TLS 启用的服务器配置(注释部分)
    • 总结

原文内容

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;events {worker_connections 1024;
}http {log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile            on;tcp_nopush          on;tcp_nodelay         on;keepalive_timeout   65;types_hash_max_size 2048;include             /etc/nginx/mime.types;default_type        application/octet-stream;# Load modular configuration files from the /etc/nginx/conf.d directory.# See http://nginx.org/en/docs/ngx_core_module.html#include# for more information.include /etc/nginx/conf.d/*.conf;server {listen       80 default_server;listen       [::]:80 default_server;server_name  _;root         /usr/share/nginx/html;# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;location / {}error_page 404 /404.html;location = /40x.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}# Settings for a TLS enabled server.
#
#    server {
#        listen       443 ssl http2 default_server;
#        listen       [::]:443 ssl http2 default_server;
#        server_name  _;
#        root         /usr/share/nginx/html;
#
#        ssl_certificate "/etc/pki/nginx/server.crt";
#        ssl_certificate_key "/etc/pki/nginx/private/server.key";
#        ssl_session_cache shared:SSL:1m;
#        ssl_session_timeout  10m;
#        ssl_ciphers PROFILE=SYSTEM;
#        ssl_prefer_server_ciphers on;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        location / {
#        }
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }} 

内容解释

Nginx 配置文件详解

这是一个典型的 Nginx 默认配置文件,它定义了 Nginx 服务的基本行为和设置。

1. 全局配置

  • user nginx;: 设置 Nginx 工作进程的用户身份为 nginx 用户。
  • worker_processes auto;: 设置工作进程的数量为自动,Nginx 会根据可用的 CPU 核心数自动设置工作进程的数量。
  • error_log /var/log/nginx/error.log;: 指定错误日志的存放路径和级别(默认为 error)。
  • pid /run/nginx.pid;: 指定 Nginx 主进程的 PID 文件存放路径。

2. 动态模块加载

  • include /usr/share/nginx/modules/*.conf;: 加载位于 /usr/share/nginx/modules/ 目录下的所有 .conf 文件,这些文件通常用于加载动态模块。

3. 事件处理配置

  • events { ... }: 定义与连接处理相关的设置。
    • worker_connections 1024;: 设置每个工作进程可以同时处理的最大连接数。

4. HTTP 配置

  • http { ... }: 定义 HTTP 服务的相关设置。
4.1 日志格式
  • log_format main ...;: 定义名为 main 的日志格式,用于记录访问日志。其中包含客户端 IP、用户、时间、请求行、状态码、发送字节数、 Referer、User-Agent 和 X-Forwarded-For 等信息。
4.2 访问日志
  • access_log /var/log/nginx/access.log main;: 指定访问日志的存放路径和使用的日志格式(main)。
4.3 文件传输优化
  • sendfile on;: 开启 sendfile 功能,用于高效地传输文件。
  • tcp_nopush on;: 开启 tcp_nopush 功能,在发送响应头部之前,尝试发送更多的文件数据,减少发送次数。
  • tcp_nodelay on;: 开启 tcp_nodelay 功能,禁用 Nagle 算法,减少延迟。
4.4 连接保持
  • keepalive_timeout 65;: 设置保持连接的超时时间,单位为秒。如果在 65 秒内没有新的请求,则关闭连接。
4.5 MIME 类型
  • types_hash_max_size 2048;: 设置 MIME 类型哈希表的最大大小。
  • include /etc/nginx/mime.types;: 加载 MIME 类型配置文件。
  • default_type application/octet-stream;: 设置默认的 MIME 类型为 application/octet-stream
4.6 加载其他配置文件
  • include /etc/nginx/conf.d/*.conf;: 加载位于 /etc/nginx/conf.d/ 目录下的所有 .conf 文件,这些文件通常用于定义虚拟主机和服务。

5. 默认服务器配置

  • server { ... }: 定义一个默认的服务器块。
    • listen 80 default_server;: 监听 TCP 的 80 端口,并将此服务器块设置为默认服务器,处理没有匹配到其他 server_name 的请求。
    • listen [::]:80 default_server;: 监听 IPv6 的 80 端口,同样设置为默认服务器。
    • server_name _;: 匹配所有请求,_ 是一个通配符。
    • root /usr/share/nginx/html;: 设置服务器根目录为 /usr/share/nginx/html
5.1 默认服务器块配置
  • include /etc/nginx/default.d/*.conf;: 加载位于 /etc/nginx/default.d/ 目录下的所有 .conf 文件,用于配置默认服务器的特定行为。
5.2 location 配置
  • location / { ... }: 匹配所有以 / 开头的请求,这里没有特别的配置,表示使用默认行为。
  • error_page 404 /404.html;: 当发生 404 错误时,返回 /404.html 页面。
  • location = /40x.html { ... }: 精确匹配 /40x.html 请求,这里没有特别的配置。
  • error_page 500 502 503 504 /50x.html;: 当发生 500、502、503 或 504 错误时,返回 /50x.html 页面。
  • location = /50x.html { ... }: 精确匹配 /50x.html 请求,这里没有特别的配置。

6. TLS 启用的服务器配置(注释部分)

  • # server { ... }: 这是一个注释的服务器块,用于配置 TLS 启用的服务器。
    • listen 443 ssl http2 default_server;: 监听 TCP 的 443 端口,启用 SSL 和 HTTP/2,并设置为默认服务器。
    • listen [::]:443 ssl http2 default_server;: 监听 IPv6 的 443 端口,同样启用 SSL 和 HTTP/2,并设置为默认服务器。
    • ssl_certificate "/etc/pki/nginx/server.crt";: 指定 SSL 证书文件的路径。
    • ssl_certificate_key "/etc/pki/nginx/private/server.key";: 指定 SSL 私钥文件的路径。
    • ssl_session_cache shared:SSL:1m;: 开启 SSL 会话缓存,并设置缓存大小为 1MB。
    • ssl_session_timeout 10m;: 设置 SSL 会话超时时间为 10 分钟。
    • ssl_ciphers PROFILE=SYSTEM;: 使用系统默认的 SSL 密码套件。
    • ssl_prefer_server_ciphers on;: 优先使用服务器端的密码套件。

总结

这个配置文件定义了 Nginx 的基本运行参数,包括用户、工作进程数、日志、文件传输优化、连接保持、MIME 类型等。它还定义了一个默认的服务器块,用于处理 HTTP 请求,并提供了注释的 TLS 服务器配置示例。通过加载其他配置文件,可以方便地扩展和定制 Nginx 的功能。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词