Nginx 常用配置模板

一、全局配置结构:

user www-data; # 指定运行用户
worker_processes auto; # 自动设置为CPU核心数
pid /run/nginx.pid; # PID文件路径

events {
worker_connections 1024; # 每个进程最大连接数
}

http {
include mime.types; # MIME类型映射
default_type application/octet-stream;

nginx

复制编辑

sendfile on; # 高效文件传输 tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; # 长连接超时 server_tokens off; # 隐藏版本信息 gzip on; # 开启Gzip压缩 gzip_disable "msie6"; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; 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 www.example.com;

nginx

复制编辑

root /var/www/html; index index.html index.htm; access_log /var/log/nginx/example_access.log main; error_log /var/log/nginx/example_error.log warn; location / { try_files $uri $uri/ =404; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; }

}


三、HTTPS 配置及 HTTP 跳转:

server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri; # 强制跳转HTTPS
}

server {
listen 443 ssl http2;
server_name example.com www.example.com;

nginx

复制编辑

ssl_certificate /etc/ssl/certs/example.pem; ssl_certificate_key /etc/ssl/private/example.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; root /var/www/html; index index.html index.htm; location / { try_files $uri $uri/ =404; }

}


四、反向代理配置(适用于Node、Python、Java等):

server {
listen 80;
server_name api.example.com;

nginx

复制编辑

location / { proxy_pass http://127.0.0.1:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; }

}


五、负载均衡配置:

http {
upstream backend {
server 192.168.1.10:8080 weight=3;
server 192.168.1.11:8080;
}

nginx

复制编辑

server { listen 80; server_name loadbalance.example.com; location / { proxy_pass http://backend; proxy_set_header Host $host; } }

}

调度算法:

  • 默认轮询(round-robin)

  • ip_hash(按客户端IP)

  • least_conn(最少连接数)

  • weight 权重(如 weight=3)


六、静态资源缓存优化:

location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
access_log off;
add_header Cache-Control "public";
}


七、安全限制:

location ~ /. {
deny all;
}

limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

server {
location /api/ {
limit_req zone=one burst=5;
proxy_pass http://127.0.0.1:3000;
}
}


八、跨域配置(接口支持 CORS):

location /api/ {
add_header Access-Control-Allow-Origin ;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
add_header Access-Control-Allow-Headers
;

nginx

复制编辑

if ($request_method = OPTIONS) { return 204; } proxy_pass http://127.0.0.1:5000;

}


九、WebSocket 支持:

location /ws/ {
proxy_pass http://localhost:6001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}


十、性能优化建议:

  1. 打开文件限制提升
    worker_rlimit_nofile 65535;

  2. 事件连接优化
    events {
    worker_connections 65535;
    multi_accept on;
    }

  3. 启用 HTTP/2(443端口)
    listen 443 ssl http2;

  4. 静态与动态资源分离
    Nginx 服务静态文件,应用服务处理动态请求

  5. 控制日志级别
    生产环境设置 error 或 warn,减少磁盘压力


十一、重载与测试命令:

nginx -t # 检查配置语法
nginx -s reload # 热重载配置
systemctl restart nginx # 重启服务

Comment

华计科技: 中华自主研发设计

华计科技为您提供咨询服务,IT技术支持和项目开发: (+86) 156 2654 0671

联系我们