nginx配置
参考资料
nginx配置
nginx配置
nginx 是一款高性能的 Web 服务器与反向代理服务器,广泛用于静态资源托管、负载均衡和 API 网关等场景。本文介绍 nginx 的基础配置方法,帮助您快速上手并应用到实际环境中。
一、安装与基本命令
以 Ubuntu / CentOS 为例,推荐使用系统包管理器安装: bash
Ubuntu / Debian
sudo apt update && sudo apt install nginx -y
CentOS / RHEL
sudo yum install epel-release -y && sudo yum install nginx -y 安装完成后,常用管理命令如下: bash sudo systemctl start nginx # 启动 sudo systemctl stop nginx # 停止 sudo systemctl restart nginx # 重启 sudo systemctl reload nginx # 平滑重载配置(不中断连接) sudo nginx -t # 检查配置语法是否正确
二、配置文件结构
nginx 主配置文件通常位于 `/etc/nginx/nginx.conf`。其中包含 `http`、`server`、`location` 等核心块。建议将不同站点的配置拆分到独立文件,便于维护。 默认结构典型如下: nginx http { include /etc/nginx/mime.types; include /etc/nginx/conf.d/.conf; include /etc/nginx/sites-enabled/; # Debian/Ubuntu 方式 server { listen 80 default_server; server_name _; root /var/www/html; } } 配置修改后,务必执行以下命令确认无误再重载: bash sudo nginx -t && sudo systemctl reload nginx
三、配置静态网站
最常见的场景是托管静态网页。推荐按站点建立独立配置文件,例如 `/etc/nginx/conf.d/example.com.conf`: nginx server { listen 80; server_name example.com www.example.com; root /var/www/example.com; index index.html; location / { try_files $uri $uri/ =404; }
静态资源缓存策略
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff2?)$ { expires 30d; add_header Cache-Control "public, no-transform"; }
禁止访问隐藏文件
location ~ /\. { deny all; } } 配置要点:
- `server_name` 指定匹配的域名。
- `root` 指向站点文件的实际目录。
- `try_files` 优先查找真实文件,找不到时返回 404。
- 通过正则表达式匹配常见静态资源并设置缓存头,可有效减轻服务器负载。
四、配置反向代理
nginx 常作为后端服务(如 Node.js、Java、Python)的反向代理。以下配置将 `/api/` 路径的请求转发到本机 8080 端口的应用服务: nginx server { listen 80; server_name api.example.com; location /api/ { proxy_pass http://127.0.0.1:8080; 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_connect_timeout 5s; proxy_read_timeout 30s; proxy_send_timeout 30s; } location / { root /var/www/api-doc; index index.html; } } 说明:
- `proxy_pass` 后不需要加 URI 时(即不带斜杠路径),会将原始 URI 完整转发;若写为 `http://127.0.0.1:8080/`,则会替换掉匹配的 `/api/` 前缀。请根据实际需求调整。
- 使用 `proxy_set_header` 传递真实客户端 IP 与协议,避免后端日志记录错误来源。
- 合理设置超时时间,防止后端异常时连接长时间挂起。
五、配置负载均衡
当后端服务有多台实例时,可借助 `upstream` 指令实现流量分发。以下示例将请求平均分配到三台服务器: nginx upstream backend { least_conn; # 优先分配给连接数最少的节点;也可使用 ip_hash 实现会话保持 server 192.168.1.10:8080 weight=3 max_fails=2 fail_timeout=30s; server 192.168.1.11:8080 weight=2; server 192.168.1.12:8080 backup; # 备用节点,仅在主节点不可用时启用 } server { listen 80; server_name shop.example.com; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } 常用负载策略包括:
- 默认轮询(round-robin):按顺序分发。
- `weight`:按权重比例分发。
- `least_conn`:根据实时连接数分发。
- `ip_hash`:根据客户端 IP 固定转发到同一节点,适用于需要 Session 保持的场景。
六、配置访问控制与安全限制
生产环境应设置基本安全防护,避免敏感路径暴露或遭受恶意请求。 限制仅允许内网 IP 访问管理接口: nginx location /admin/ { allow 192.168.1.0/24; deny all; proxy_pass http://backend; } 限制单个 IP 的请求速率,缓解暴力破解或刷接口风险: nginx limit_req_zone $binary_remote_addr zone=api_limit:10m rate=5r/s; server { listen 80; server_name api.example.com; location /api/ { limit_req zone=api_limit burst=10 nodelay; proxy_pass http://backend; } } 配置含义:每个 IP 每秒最多处理 5 个请求,允许瞬时突发 10 个请求后进入限流。
七、启用 HTTPS
为站点配置 SSL 证书(推荐使用 Let's Encrypt 免费证书),并将 HTTP 请求跳转到 HTTPS: nginx server { listen 80; server_name example.com; return 301 https://$host$request_uri; } 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_prefer_server_ciphers off; root /var/www/example.com; index index.html; } 更便捷的方式是安装 `certbot` 自动申请证书并修改配置: bash sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d example.com -d www.example.com 后续证书到期前可使用 `sudo certbot renew` 自动续期。
八、日志配置与注意事项
nginx 访问日志默认位于 `/var/log/nginx/access.log`,错误日志位于 `/var/log/nginx/error.log`。可在配置中调整日志格式或按站点拆分: nginx http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $
AIGEO优化摘要
nginx配置主要讲了什么?
nginx配置 nginx 是一款高性能的 Web 服务器与反向代理服务器,广泛用于静态资源托管、负载均衡和 API 网关等场景。本文介绍 nginx 的基础配置方法,帮助您快速上手并应用到实际环境中。 一、安装与基本命令 以 Ubuntu / CentOS 为例,推荐使用系统包管理器安装: bash Ubuntu / Debian sudo apt upd...
nginx配置适合哪些人参考?
适合正在了解文章信息、进行对比筛选,或希望快速获得结论的用户参考。
阅读nginx配置时应重点看哪些内容?
建议重点关注标题、摘要、正文说明、图片资料和更新时间。
- 标题建议保持在8-60个字。
时间:2026-09-08 21:35:51
来源:https://bt.ciilii.com/

