Nginx反向代理怎么玩转域名配置?

速达网络 域名知识 2

哎你经历过吗?公司官网上午还好好的,下午突然抽风显示502错误,老板急得直跳脚!去年我就栽在这坑里——当时用Nginx做反向代理,结果把域名配置搞砸了。今天就带新手们避坑,保你三分钟搞懂门道!


Nginx反向代理怎么玩转域名配置?-第1张图片

​反向代理到底是个啥玩意?​
简单说就像个智能前台,把访客带到正确的办公室。比如你有三个部门:

  • 官网(http://www.xxx.com
  • 商城(shop.xxx.com)
  • 后台(admin.xxx.com)

Nginx就是那个记住所有人长相的前台,看一眼访客要找谁,立马带对地方。不过这个前台有点强迫症,配置文件的标点符号错一个都不干活!


​新手必懂的三大配置要点​

  1. ​server_name别写错​​:
    把主域名和子域名用空格隔开,比如:
    server_name http://www.xxx.com shop.xxx.com;
    要是漏写分号,整个配置文件直接**!

  2. ​proxy_pass加不加斜杠​​:

    • 加斜杠:把请求转给http://backend/new-path
    • 不加斜杠:把请求转给http://backend/old-path/new-path
      去年我就因为这破事,把用户订单导到测试环境去了...
  3. ​缓存策略要合理​​:

    场景缓存时间配置示例
    静态资源30天proxy_cache_valid 200 304 30d;
    动态接口5分钟proxy_cache_valid5m;
    实时数据不缓存proxy_no_cache $http_pragma;

​域名配置的隐藏陷阱​
上周帮客户处理个奇葩问题:明明配置了SSL证书,Chrome还是显示不安全。最后发现是Nginx版本太老,不支持TLS1.3!

​安全加固四步走​​:

  1. 更新到最新稳定版(1.25.3以上)
  2. 配置SSL协议白名单:
    ssl_protocols TLSv1.2 TLSv1.3;
  3. 开启OCSP装订加速:
    ssl_stapling on;
  4. 设置HSTS头强制HTTPS:
    add_header Strict-Transport-Security "max-age=63072000";

记住这个血泪教训:用在线检测工具(SSL Labs)扫一遍,比手动检查靠谱十倍!


​性能优化的骚操作​
某电商平台用这招把并发处理能力提升了3倍:

  1. 启用keepalive长连接:
    proxy_http_version 1.1;
    proxy_set_header Connection "";
  2. 开启gzip压缩:
    gzip_proxied any;
  3. 分配专属内存池:
    proxy_buffers 16 32k;
    proxy_buffer_size 64k;

不过要注意!有个客户照抄配置结果内存爆了,后来发现是他的后端响应头太大,把proxy_buffer_size调到128k才解决...


​调试技巧大放送​
遇到502错误别慌,按这个顺序查:

  1. 看error.log报错信息(路径:/var/log/nginx/error.log)
  2. 检查后端服务是否存活(curl -I http://backend
  3. 测试域名解析是否正常(nslookup shop.xxx.com)
  4. 验证防火墙规则(iptables -L -n)

最绝的是在location块加调试头:
add_header X-Proxied $proxy_host;
这样在浏览器开发者工具就能看到请求被转到哪去了!


说到个人观点,我觉得现在最该警惕的是证书自动续期。去年用acme.sh自动续期SSL证书,结果crontab任务没执行成功,导致凌晨三点官网崩了...建议每月手动检查一次证书状态,这比配置反向代理本身更重要!

标签: 反向 配置 域名