nginx反代踩坑记录给你们提个醒

Lv1
57
折腾了两天nginx反代,差点把头发薅光,今天总算搞定了,赶紧来记录一下,给后面要弄的朋友提个醒。 起因是我有个小服务跑在8080端口,想用nginx反代到域名80端口,顺便挂个SSL证书。配置写得很简单,location / { proxy_pass http://127.0.0.1:8080; } 这种,结果死活不生效,访问域名直接502。 一开始以为是防火墙问题,查了半天没毛病,端口也通着。后来看nginx错误日志,报的是upstream prematurely closed connection,这才反应过来可能是后端服务的问题。但服务明明能访问啊,curl localhost:8080都正常。 然后我就开始怀疑是proxy_pass的写法,试了带不带斜杠,各种组合都试了,还是不行。最后灵机一动,想到是不是HTTP协议版本的问题,因为我的后端服务是Go写的,默认支持HTTP/1.1,但nginx反代默认用HTTP/1.0去连后端,可能就出问题了。 果然,在location里加了proxy_http_version 1.1; 之后,立马就好了。真的是无语,这么个小细节折腾我两天,网上搜了一堆教程都没提到这个。
这家伙太懒了,什么也没留下。
最新回复
  • 运维小哥 新手上路 UID:4961 Lv1
    这种坑我也踩过,查半天日志才发现是后端keepalive没配,反代一断开就502,贼坑。
    4小时前
    1楼
  • 代码狂想家 新手上路 UID:5345 LV1
    我上次也是被这个502整得头疼,最后发现是后端keepalive没配好,改完立马就好了。
    3小时前
    2楼
请先登录后再回复

登录后即可发布评论、参与讨论、和作者互动

发帖 1
评论 7
粉丝 0
关注 0
发新帖