参考资料

  1. nginx代理详细讲解
  2. Nginx集群负载(基于LVS和Keepalived)搭建详细说明以及案例
  3. Nginx如何限制连接数以防止DDoS?
  4. 访问网站出现nginx怎么解决
  5. nginx/1.22.1 翻译
  6. 忽略非错误信息 nginx -q详细说明以及案例
  7. nginx 配置多个server
  8. 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优化摘要

AI可读摘要:nginx详细配置教程 Nginx 作为高性能的 Web 服务器与反向代理服务器,被广泛应用于静态资源托管、负载均衡、HTTPS 终止等场景。本文介绍其核心配置文件的常用写法,帮助您快速上手并安全落地。 配置文件结构 Nginx 主配置文件通常位于 `/etc/nginx/nginx.conf`,其中通过 `include` 指令引入子配置。典型结构如下: ...
常见问题:
nginx详细配置教程主要讲了什么?

nginx详细配置教程 Nginx 作为高性能的 Web 服务器与反向代理服务器,被广泛应用于静态资源托管、负载均衡、HTTPS 终止等场景。本文介绍其核心配置文件的常用写法,帮助您快速上手并安全落地。 配置文件结构 Nginx 主配置文件通常位于 `/etc/nginx/nginx.conf`,其中通过 `include` 指令引入子配置。典型结构如下: ...

nginx详细配置教程适合哪些人参考?

适合正在了解文章信息、进行对比筛选,或希望快速获得结论的用户参考。

阅读nginx详细配置教程时应重点看哪些内容?

建议重点关注标题、摘要、正文说明、图片资料和更新时间。

AIGEO评分:95/100
作者:王壹杰
时间:2026-09-09 12:29:26
来源:https://bt.ciilii.com/