Nginx的配置文件 nginx.conf
是Nginx服务器的核心配置文件,它定义了服务器的全局行为、HTTP模块参数、虚拟主机(Server Blocks)配置等。以下是其核心结构和含义的详细解析:
典型的 nginx.conf
文件分为以下几个部分(按层级从外到内):
nginx
user nginx; # 运行Nginx的用户和组
worker_processes auto; # 工作进程数(通常设为CPU核心数)
error_log /var/log/nginx/error.log warn; # 错误日志路径和级别
pid /var/run/nginx.pid; # 存储主进程PID的文件路径
events {
worker_connections 1024; # 每个工作进程的最大连接数
}
常见指令:
http {
include /etc/nginx/mime.types; # 引入MIME类型定义文件
default_type application/octet-stream; # 默认响应类型
sendfile on; # 启用高效文件传输模式
keepalive_timeout 65; # 客户端长连接超时时间(秒)
# 日志格式定义
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main; # 访问日志路径和格式
# 引入其他配置文件(如虚拟主机配置)
include /etc/nginx/conf.d/*.conf;
}
常见配置:
server {
listen 80; # 监听端口
server_name example.com; # 域名或IP
root /var/www/html; # 网站根目录
location / { # 请求路径匹配规则
index index.html;
}
location /api {
proxy_pass http://backend:8080; # 反向代理到后端服务
}
}
location /
:匹配所有请求。location ~ \.php$
:正则匹配PHP文件。location ^~ /static/
:优先匹配静态资源。指令 | 作用 |
---|---|
gzip on; |
启用Gzip压缩响应数据,减少传输体积。 |
proxy_set_header |
反向代理时修改请求头(如传递客户端IP)。 |
ssl_certificate |
指定SSL证书路径(HTTPS配置)。 |
rewrite |
URL重写规则(如实现伪静态)。 |
error_page |
自定义错误页面(如 error_page 404 /404.html )。 |
server {
listen 80;
server_name example.com;
root /var/www/example;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
root /var/www/secure;
}
}
bash
nginx -t
bash
nginx -s reload
bash
nginx -T
server
只能在http
内)。worker_processes
和worker_connections
。root
用户运行Nginx,限制敏感目录访问。通过合理配置 nginx.conf
,Nginx可以高效处理静态资源、反向代理、负载均衡、SSL加密等任务。建议结合业务需求参考官方文档(nginx.org)进行深度定制。