Nginx的默认主配置文件 “/etc/nginx/nginx.conf“ 解读
安装Nginx后的默认主配置文件 “/etc/nginx/nginx.conf” 解读
详见如下配置及注释:
# 指定 Nginx 工作进程运行的用户和用户组。这里指定以www - data用户来运行 Nginx 工作进程。
# 在基于 Debian 和 Ubuntu 的系统中,www-data 用户是默认存在的,
# 它通常用于运行 Web 服务器进程(如 Nginx、Apache 等)。
user www-data;# 设置 Nginx 工作进程的数量。
# auto表示 Nginx 会自动根据服务器的 CPU 核心数来确定工作进程的数量,
# 一般会设置为与 CPU 核心数相同或略多,以充分利用服务器的资源,提高性能和并发处理能力。
worker_processes auto;# 指定 Nginx 进程 ID(PID)文件的存放路径。
# Nginx 在启动时会将主进程的 PID 写入到这个文件中,
# 方便系统管理工具或其他程序通过读取该文件来获取 Nginx 进程的状态和进行相关操作,如停止、重启 Nginx 服务等。
pid /run/nginx.pid;# 设置 Nginx 错误日志的文件路径。
error_log /var/log/nginx/error.log;# 告诉 Nginx 加载指定目录下的所有配置文件。
# 这样可以将 Nginx 的配置分散到多个文件中,便于管理和维护。
include /etc/nginx/modules-enabled/*.conf;# events 块,用于配置 Nginx 处理事件的方式
events {# 每个工作进程最多可以同时处理 768 个连接# 这个值的设置会直接影响 Nginx 的并发处理能力。# 如果设置得太小,当有大量并发连接请求时,Nginx 可能无法及时处理所有请求,导致部分连接被拒绝;# 如果设置得太大,可能会占用过多的系统资源,如内存等。worker_connections 768; # multi_accept on;
}# http 块包含了一系列 HTTP 服务相关的配置
http {################################################################### Basic Settings 【基本设置】################################################################### 启用 sendfile 功能。# sendfile 是一种高效的文件传输机制,允许操作系统直接在内核空间将文件数据传输到网络套接字,# 避免了数据在用户空间和内核空间之间的多次拷贝,从而提高文件传输性能。sendfile on;# 与 sendfile 配合使用,当启用 sendfile 时,# tcp_nopush 会让 Nginx 在发送数据时尽可能将多个数据包合并成一个大的 TCP 数据包发送,# 减少 TCP 报文的数量,提高网络传输效率。tcp_nopush on;# 设置 MIME 类型哈希表的最大大小。# 哈希表用于快速查找文件扩展名对应的 MIME 类型,增大这个值可以提高查找效率,但会占用更多内存。types_hash_max_size 2048;# 如果启用(去掉注释),会禁止 Nginx 在响应头中显示服务器版本信息,# 有助于提高服务器的安全性,防止攻击者根据版本信息进行针对性攻击。# server_tokens off;# 设置服务器名称哈希表的桶大小,适当调整这个值可以优化服务器名称的查找性能。# server_names_hash_bucket_size 64;# 如果启用,会禁止 Nginx 在重定向时使用服务器名称,而是使用客户端请求的原始服务器名称。# server_name_in_redirect off;# 包含 mime.types 文件,该文件定义了不同文件扩展名对应的 MIME 类型,# Nginx 会根据这个文件来确定发送给客户端的文件的 MIME 类型。include /etc/nginx/mime.types;# 设置默认的 MIME 类型为 application/octet-stream,# 当 Nginx 无法根据文件扩展名确定 MIME 类型时,会使用这个默认类型。default_type application/octet-stream;################################################################### SSL Settings【SSL 设置】################################################################### 指定 Nginx 支持的 SSL/TLS 协议版本,这里列出了 TLSv1、TLSv1.1、TLSv1.2 和 TLSv1.3,# 同时注释中提到移除了 SSLv3 协议,因为 SSLv3 存在 POODLE 漏洞,不安全。ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE# 启用服务器优先选择加密套件的功能。# 当客户端和服务器协商加密套件时,服务器会优先使用自己配置的加密套件列表,增强安全性。ssl_prefer_server_ciphers on;################################################################### Logging Settings【日志设置】################################################################### 设置 Nginx 的访问日志文件路径access_log /var/log/nginx/access.log;################################################################### Gzip Settings【Gzip 设置】################################################################### 启用 Gzip 压缩功能,Nginx 会对符合条件的响应内容进行压缩,减少数据传输量,提高网站访问速度。gzip on;# 如果启用,Nginx 会在响应头中添加 Vary: Accept-Encoding 字段,# 告诉缓存服务器(如 CDN)根据客户端的 Accept-Encoding 请求头来缓存不同压缩格式的响应内容。# gzip_vary on;# 如果启用,Nginx 会对所有经过代理的响应内容进行 Gzip 压缩。# gzip_proxied any;# 设置 Gzip 压缩级别,范围从 1 到 9,值越大压缩比越高,但会消耗更多的 CPU 资源,默认值是 6。# gzip_comp_level 6;# 设置 Gzip 压缩使用的缓冲区大小和数量,这里表示使用 16 个大小为 8KB 的缓冲区。# gzip_buffers 16 8k;# 指定支持 Gzip 压缩的 HTTP 版本,这里设置为 HTTP/1.1。# gzip_http_version 1.1;# 指定需要进行 Gzip 压缩的 MIME 类型列表,只有符合这些 MIME 类型的响应内容才会被压缩。# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;################################################################### Virtual Host Configs【虚拟主机配置】################################################################### 包含 /etc/nginx/conf.d/ 目录下的所有 .conf 配置文件include /etc/nginx/conf.d/*.conf;# 包含 /etc/nginx/sites-enabled/ 目录下的所有配置文件include /etc/nginx/sites-enabled/*;
}# 关于邮件代理功能的配置示例
#mail {
# # 一个关于使用 Apache PHP 脚本进行 IMAP 认证的示例脚本说明,为用户在配置邮件认证时提供参考。
# # See sample authentication script at:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # 指定一个 HTTP 认证服务器。若启用,Nginx 会将邮件客户端的认证请求转发到 localhost/auth.php 进行处理。
# # auth_http localhost/auth.php;
#
# # 用来声明 POP3 服务器所支持的功能。
# # "TOP" 允许客户端获取邮件头部信息,"USER" 支持客户端使用 USER 命令发送用户名。
# # pop3_capabilities "TOP" "USER";
#
# # 声明 IMAP 服务器支持的功能。
# # "IMAP4rev1" 是 IMAP 协议的修订版本 1,"UIDPLUS" 允许客户端使用唯一标识符(UID)来操作邮件。
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# # server 块用于定义一个邮件服务器实例
# server {
# # 指定服务器监听的地址和端口。110 端口是 POP3 协议的默认端口。
# listen localhost:110;
# # 明确该服务器实例使用的邮件协议为 POP3
# protocol pop3;
# # 开启代理功能,意味着 Nginx 会将客户端的 POP3 请求代理转发到后端的 POP3 服务器进行处理。
# proxy on;
# }
#
# server {
# # 指定服务器监听本地主机的 143 端口,143 端口是 IMAP 协议的默认端口。
# listen localhost:143;
# # 使用的邮件协议为 IMAP
# protocol imap;
# # 开启代理功能
# proxy on;
# }
#}