nginx详细配置教程
参考资料
nginx详细配置教程
nginx详细配置教程
Nginx 作为高性能的 Web 服务器与反向代理服务器,被广泛应用于静态资源托管、负载均衡、HTTPS 终止等场景。本文介绍其核心配置文件的常用写法,帮助您快速上手并安全落地。
配置文件结构
Nginx 主配置文件通常位于 `/etc/nginx/nginx.conf`,其中通过 `include` 指令引入子配置。典型结构如下: nginx user nginx; worker_processes auto; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; include /etc/nginx/conf.d/*.conf; } 建议将每个站点独立放置于 `/etc/nginx/conf.d/` 下,便于维护和隔离。
配置静态站点
托管前端静态资源是最常见的用法。以下示例监听 80 端口,根目录指向 `/var/www/html`,开启 Gzip 压缩并配置缓存: nginx server { listen 80; server_name example.com; root /var/www/html; index index.html;
开启 gzip
gzip on; gzip_types text/css application/javascript application/json image/svg+xml;
静态资源缓存
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff2?)$ { expires 30d; add_header Cache-Control "public, immutable"; }
防止访问隐藏文件
location ~ /\. { deny all; } }
反向代理与负载均衡
当后端有多个应用服务器时,可使用 `upstream` 实现流量的分发。示例将 `/api/` 的请求代理给两台 Java 服务,并启用健康检查(需 Nginx Plus 或开源版配合 `max_fails`): nginx upstream backend { server 192.168.1.10:8080 max_fails=3 fail_timeout=30s; server 192.168.1.11:8080 max_fails=3 fail_timeout=30s; } server { listen 80; server_name api.example.com; location /api/ { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } 注意:使用 `proxy_pass http://backend;` 时末尾不携带路径,会将原始的 `/api/` 完整传给后端。若想去除前缀,可写为 `proxy_pass http://backend/;`。
HTTPS 与安全配置
务必为站点开启 HTTPS。推荐使用 Let's Encrypt 免费证书。常见配置如下: nginx server { listen 443 ssl http2; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256'; ssl_prefer_server_ciphers on;
安全响应头
add_header Strict-Transport-Security "max-age=31536000" always; add_header X-Content-Type-Options nosniff; add_header X-Frame-Options SAMEORIGIN;
其他站点内容...
}
将 HTTP 重定向到 HTTPS
server { listen 80; server_name example.com; return 301 https://$host$request_uri; } 不要直接使用弱加密套件或 TLSv1.0/1.1。如需支持老旧客户端,请单独评估风险。
限流与防滥用
生产环境建议限制单个 IP 的请求速率,避免流量洪峰拖垮服务: nginx
定义限流区域:每个 IP 分配 10MB 状态存储,速率 5r/s
limit_req_zone $binary_remote_addr zone=api_limit:10m rate=5r/s; server { location /api/ {
burst 允许瞬时超额 10 个请求,延迟处理
limit_req zone=api_limit burst=10 nodelay; proxy_pass http://backend; } } 如需限制并发连接数,可使用 `limit_conn_zone`。
日志脱敏与格式
默认日志会记录完整 URI,可能包含敏感参数。建议自定义日志格式并过滤查询字符串: nginx log_format main '$remote_addr - [$time_local] "$request_method $uri" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent"'; access_log /var/log/nginx/access.log main; 若需要记录完整 URL,请先对参数脱敏,避免写入密码、令牌等。
验证与重载
任何配置修改后,必须执行语法检查再平滑重载: bash
检查配置语法
nginx -t
平滑重载,不中断现有连接
nginx -s reload 如果 `nginx -t` 报错,请根据错误行号定位,修正后再次测试。回滚操作只需将配置文件恢复到上一个可用版本,然后重新加载。
注意事项
- 修改配置文件前建议备份原来版本,例如 `cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak`。
- 更改系统级参数(如 `worker_processes`、`worker_connections`)后,需重启 Nginx 才能生效,重载不一定完全生效。
- 若使用了未编译进 Nginx 的第三方模块,配置前请确认模块存在,否则会提示未知指令。
- 不建议使用 `root` 运行 Nginx worker 进程,请使用低权限专用用户。
- 若开启 SELinux 或防火墙,请放行相应端口(80/443),否则外部无法访问。
以上是 Nginx 配置的核心内容。您在配置过程中如有具体场景或错误提示,请补充细节,我可以进一步帮您分析调整。
AIGEO优化摘要
nginx详细配置教程主要讲了什么?
nginx详细配置教程 Nginx 作为高性能的 Web 服务器与反向代理服务器,被广泛应用于静态资源托管、负载均衡、HTTPS 终止等场景。本文介绍其核心配置文件的常用写法,帮助您快速上手并安全落地。 配置文件结构 Nginx 主配置文件通常位于 `/etc/nginx/nginx.conf`,其中通过 `include` 指令引入子配置。典型结构如下: ...
nginx详细配置教程适合哪些人参考?
适合正在了解文章信息、进行对比筛选,或希望快速获得结论的用户参考。
阅读nginx详细配置教程时应重点看哪些内容?
建议重点关注标题、摘要、正文说明、图片资料和更新时间。
时间:2026-09-09 12:29:26
来源:https://bt.ciilii.com/

