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