配置文件结构
Nginx 配置文件采用模块化层级结构,各配置段职责明确,下面梳理其基本结构。
配置文件层级
Nginx 配置文件(通常位于 /etc/nginx/nginx.conf)由多个配置段组成,呈树状层级:
nginx
main(全局配置)
├── events(工作进程连接配置)
└── http(HTTP 相关配置)
├── upstream(负载均衡后端组)
├── server(虚拟主机)
│ └── location(URL 路径匹配)
└── server
└── location
main 配置段
全局配置,定义 Nginx 进程、用户、日志、PID 等:
nginx
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events 配置段
定义工作进程如何处理连接:
nginx
events {
worker_connections 1024;
multi_accept on;
use epoll;
}
http 配置段
HTTP 协议相关配置的核心区域:
nginx
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer"';
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name example.com;
location / {
root /usr/share/nginx/html;
index index.html;
}
}
}
server 配置段
定义一个虚拟主机,一个 http 块内可包含多个 server:
nginx
server {
listen 80;
server_name www.example.com;
root /var/www/html;
}
location 配置段
定义 URL 路径的匹配规则和处理方式:
text
location /images/ {
root /data;
autoindex on;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
}
注意事项
- 指令以分号结尾,遗漏会导致配置错误
- 配置段用花括号
{}包裹,不可省略include指令可引入外部配置文件,实现模块化- 子配置段会继承父配置段的指令,也可覆盖
配置加载顺序
- Nginx 启动时读取
nginx.conf - 遇到
include指令时加载外部文件 - 同一层级多个
server按声明顺序加载 - 同一
server内多个location按匹配优先级生效
要点总结
- 配置文件采用 main → events/http → server → location 层级结构
- main 段定义全局参数,events 段定义连接处理,http 段定义 HTTP 行为
- server 段定义虚拟主机,location 段定义路径匹配规则
- 指令以分号结尾,配置段用花括号包裹
- 子配置段继承父配置段,支持 include 模块化引入
📝 发现内容有误?点击此处直接编辑