跳到主要内容

配置域

Nginx 主配置

sed '/^\s*#/d' /etc/nginx/nginx.conf 查看主配置:

# 第一部分
user www-data; #设置运行 Nginx 工作进程的用户
worker_processes auto; #指定工作进程的数量,auto 表示根据 CPU 核心数自动调整
pid /run/nginx.pid; #指定 Nginx 主进程的 PID 文件路径
error_log /var/log/nginx/error.log; #指定错误日志文件的路径
include /etc/nginx/modules-enabled/*.conf; #包含 Nginx 模块配置文件


# 第二部分。事件区块配置,用于优化网络连接
events {
worker_connections 768; #每个工作进程可以同时打开的最大连接数
}


# 第三部分。 HTTP 服务器区块配置
http {
sendfile on; # 开启 sendfile 传输文件模式,提高文件传输效率
tcp_nopush on; # 开启 TCP_NOPUSH,允许在连接中发送多个数据包,减少网络交互次数
types_hash_max_size 2048; # 设置散列表的最大值,用于存储 MIME 类型

include /etc/nginx/mime.types; # 包含 MIME 类型文件,用于映射文件扩展名到 MIME 类型
default_type application/octet-stream; # 设置默认 MIME 类型

ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # 设置支持的 SSL 协议版本
ssl_prefer_server_ciphers on; # 在 SSL 握手时优先使用服务器端的首选加密算法

access_log /var/log/nginx/access.log; # 指定访问日志文件的路径

gzip on; # 开启 Gzip 压缩功能,减少传输数据的大小

# 引入 Server块配置,也就是第四部分。
include /etc/nginx/conf.d/*.conf; # 包含额外的服务器配置文件
include /etc/nginx/sites-enabled/*; # 包含虚拟主机的配置文件
}

Nginx 通常有一个主配置文件(全局配置)+多个 Server 配置文件(具体网站)。

Server 块

查看 default 配置

grep -vE '^\s*#|^\s*$' /etc/nginx/sites-available/default

server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
}

这是 Nginx 默认站点配置,用于:

  • 接收所有访问本机 IP 或未绑定域名的 HTTP 请求。

  • /var/www/html 目录提供静态内容。

    页面内容

  • 如果请求的文件不存在,就返回 404 Not Found

Server 块可以指定哪些内容

[!note]

Server 块的重要性:学会配置 Server 块 = 学会 Nginx 的使用。

  1. 监听与匹配
    • listen:监听的端口和地址(IPv4/IPv6、TCP/UDP、SSL 等)
    • server_name:匹配的域名或主机名
  2. 请求处理
    • root:网站根目录(静态文件位置)
    • index:默认首页文件(如 index.html)
    • location:按请求路径匹配,细化请求处理逻辑
  3. 代理与后端交互
    • proxy_pass:反向代理地址
    • fastcgi_pass:FastCGI 服务地址(PHP 等)
  4. 日志
    • access_log:访问日志文件路径及格式
    • error_log:错误日志文件及日志级别
  5. 错误页
    • error_page:自定义错误页面和状态码处理
  6. 安全与访问控制
    • allow / deny:IP 访问控制
    • auth_basic / auth_basic_user_file:基本认证
  7. 重写与跳转
    • rewrite:URL 重写规则
    • return:直接返回状态码或重定向
  8. SSL / HTTPS
    • ssl_certificatessl_certificate_key:证书文件路径
    • ssl_protocolsssl_ciphers:SSL 配置项
  9. 性能优化
    • expires:缓存时间设置
    • add_header:自定义响应头
    • gzip:启用 gzip 压缩
  10. 其他高级配置
    • limit_req / limit_conn:请求限制
    • client_max_body_size:客户端请求体最大限制
    • proxy_set_header:设置代理请求头