Nginx 配置文件详解及常用指令

2025.5.29 杂七杂八 800

Nginx 配置文件详解及常用指令 杂七杂八-第1张

本文深入解析Nginx配置文件结构与核心指令,涵盖http、server、location块配置逻辑,详解rewrite、proxy_pass等高频指令的实战用法,并提供性能优化与安全配置建议,帮助开发者高效管理Web服务器。

一、Nginx配置文件结构解析

Nginx配置文件默认位于/etc/nginx/nginx.conf,采用模块化分层结构:

 全局上下文(Main Context)
user  nginx;
worker_processes  auto;

events {
    worker_connections  1024;
}

http {
     HTTP全局配置
    include       /etc/nginx/mime.types;
    
    server {
         虚拟主机配置
        listen 80;
        server_name example.com;
        
        location / {
             请求处理规则
            root /var/www/;
        }
    }
}

核心配置块说明:

  • Main Context:进程级配置(用户、worker数量等)
  • events:连接处理模型参数
  • http:所有HTTP相关配置的根块
  • server:定义虚拟主机(可多实例)
  • location:URI匹配规则与处理逻辑

二、高频核心指令详解

1. 请求处理指令

location /api/ {
    proxy_pass http://backend_server;
    proxy_set_header Host $host;
    proxy_connect_timeout 60s;
}

2. 重定向与重写

rewrite ^/old-url/(.)$ /new-url/$1 permanent;
return 301 https://$host$request_uri;

3. 性能优化指令

gzip on;
gzip_types text/plain application/json;
keepalive_timeout 65;
client_max_body_size 20M;

三、安全加固配置示例

server {
    listen 443 ssl;
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
    
    add_header X-Content-Type-Options nosniff;
    add_header X-Frame-Options DENY;
    
    location /admin/ {
        auth_basic "Restricted Area";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
}

四、调试与最佳实践

  1. 使用nginx -t测试配置语法
  2. 通过access_logerror_log定位问题
  3. 避免在location中使用if判断(性能损耗)
  4. 使用include拆分大型配置文件

评论