nginx配置语法规则
Nginx 配置文件遵循简单直观的语法规范,下面梳理核心规则。
基本语法
指令格式
nginx
directive value1 value2 ...;
- 指令名与值之间用空格分隔
- 每条指令以分号
;结尾 - 遗漏分号会导致配置错误
配置块
nginx
context_name {
directive value;
another_context {
directive value;
}
}
- 配置块用花括号
{}包裹 - 块内可嵌套其他块或指令
注释
nginx
# 单行注释
# 多行注释需每行前加 #
- Nginx 仅支持
#单行注释 - 不支持
/* */块注释
变量
nginx
# 内置变量
set $my_var $remote_addr;
# 使用变量
log_format custom '$remote_addr - $my_var';
- 变量以
$开头 - 变量名可包含字母、数字、下划线
路径表示
相对路径
nginx
root html;
相对于 Nginx 安装目录(通常 /etc/nginx)。
绝对路径
nginx
root /var/www/html;
error_log /var/log/nginx/error.log;
推荐使用绝对路径,避免歧义。
引号使用
单值无需引号
nginx
worker_processes auto;
多值或含空格需引号
nginx
server_name "example.com www.example.com";
log_format main 'value with spaces';
- 单引号
'和双引号"均可 - 值内含空格、特殊字符时建议使用引号
单位表示
nginx
# 时间单位
keepalive_timeout 65s; # 秒
proxy_connect_timeout 60s;
ssl_session_timeout 10m; # 分钟
# 大小单位
client_max_body_size 10m; # 兆字节
proxy_buffer_size 4k; # 千字节
| 单位 | 说明 |
|---|---|
s | 秒(默认,可省略) |
m | 分钟(时间)/ 兆字节(大小) |
h | 小时 |
d | 天 |
w | 周 |
M | 月 |
y | 年 |
k/K | 千字节 |
注意事项
- 分号是必须,遗漏会报
unexpected end of file错误- 配置文件路径区分大小写
- 修改配置后执行
nginx -t验证语法- 同一指令在相同层级出现多次,以最后一次为准(部分指令除外)
常见语法错误
nginx
# 错误:遗漏分号
worker_processes auto
# 错误:花括号不匹配
http {
server {
listen 80;
}
# 错误:指令拼写错误
work_processes auto;
# 正确
worker_processes auto;
要点总结
- 指令以分号结尾,配置块用花括号包裹
- 注释使用
#,仅支持单行 - 变量以
$开头,路径推荐绝对路径 - 值内含空格时使用引号
- 时间/大小单位:s/m/h/d 表示时间,k/m 表示大小
- 配置变更后执行
nginx -t验证
📝 发现内容有误?点击此处直接编辑