Nginx 是运维部署中最常用的反向代理服务器。反向代理隐藏了后端服务细节,同时天然支持负载均衡与高可用。

基础反向代理配置

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

location / {
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;
}
}

负载均衡:upstream

upstream backend {
# 默认轮询(round-robin)
server 10.0.0.1:8080 weight=3;
server 10.0.0.2:8080;
server 10.0.0.3:8080 backup; # 备用节点
}

server {
listen 80;
location / {
proxy_pass http://backend;
}
}

负载均衡的常见策略:

策略 关键字 适用场景
轮询 默认 后端能力均等
权重 weight=N 机器性能不均
IP 哈希 ip_hash 需要会话保持
最小连接 least_conn 长耗时请求多

配置 HTTPS

server {
listen 443 ssl;
server_name blog.example.com;

ssl_certificate /etc/nginx/certs/fullchain.pem;
ssl_certificate_key /etc/nginx/certs/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
}

常见坑

  1. 忘记 proxy_set_header Host:后端拿到的是内网地址,站点可能跳转异常
  2. 超时设置过短:大文件上传要调大 proxy_read_timeout
  3. upstream 节点宕机:默认会有 fail_timeout 检测,配合 max_fails 使用更稳妥
# 修改配置后务必先校验再重载
nginx -t && systemctl reload nginx

欢迎来到极客小屋,这里记录着编程、运维与 AI 的学习与实践。

本站由 站长 使用 Stellar 主题创建。

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。