首页 > 解决方案 > HaProxy 转发代理在 HTTP 上工作,但在 HTTPS 上给出 503

问题描述

我希望以下配置能够接收 HTTPS 请求,执行 SSL 卸载并将 HTTP 请求发送到我的后端,但是使用 HTTPS 我得到“503 服务不可用”。

也许我错过了一些明显的东西?尝试这个很新,所以任何帮助表示赞赏。

global
  tune.ssl.default-dh-param 2048

defaults
  mode http
  timeout connect 5000ms                  
  timeout client 50000ms                   
  timeout server 50000ms                   

backend certbot
  option httpchk GET /
  default-server init-addr libc,none
  server certbot_server certbot check port 80

backend client
  option httpchk HEAD /
  server client_server client check port 80

backend api               
  option httpchk OPTIONS /api/healthcheck
  server api_server api check port 80

frontend app
  bind *:80
  bind *:443 ssl crt /certs/productpedia.co.uk.pem

  use_backend certbot if { path_beg -i /.well-known/acme-challenge/ }                    
  use_backend api if { path_beg /api }
  default_backend client

  stats enable
  stats uri /stats
  stats refresh 10s
  stats admin if LOCALHOST

编辑:

附加了 503 请求的wireshark 跟踪,看起来服务器正在重置连接,但不确定我可以从这里去哪里,或者是什么原因造成的?

在此处输入图像描述

标签: dockerhaproxy

解决方案


经过一整天的调试,看起来简单地指定端口 80 就可以了,虽然我希望默认端口是 80,也许它通过默认端口 443?在此更改后检查后,我也可以摆脱端口 80,这是最初的触发提示,表明那里可能有问题。

backend certbot
  option httpchk GET /
  default-server init-addr libc,none
  server certbot_server certbot:80 check

backend client
  option httpchk HEAD /
  server client_server client:80 check

backend api               
  option httpchk OPTIONS /api/healthcheck
  server api_server api:80 check

推荐阅读