Назад | Перейти на главную страницу

haproxy с SSL перед apache для локальной разработки

Я работаю над веб-приложением, которое регулярно выполняет вызовы AJAX на сервер REST, доступ к которому (в процессе эксплуатации) осуществляется через тот же домен. Во время локальной разработки я перенаправлял вызовы REST на сервер разработки, используя haproxy, чтобы обойти ограничения браузера на кросс-источник запросов.

haproxy.cfg

global
 maxconn 4096
 pidfile ~/tmp/haproxy.pid

defaults
 log global
 log 127.0.0.1 local0
 log 127.0.0.1 local1 notice  
 mode http
 timeout connect 300000
 timeout client 300000
 timeout server 300000
 maxconn 2000
 option redispatch
 retries 3
 option httpclose
 option httplog
 option forwardfor
 option httpchk HEAD / HTTP/1.0


frontend dev
   bind *:8080 ssl crt /path/to/proxy.pem

    acl                             allow_php               path_beg /app/
    acl                             allow_rest              path_beg /rest/

    use_backend                     be_php                  if allow_php
    use_backend                     be_rest                 if allow_rest

backend be_php
 balance roundrobin
 server localhost_80 localhost:80

backend be_rest
 balance roundrobin
 server dev_80 dev.example.com:80

Это работает как ожидалось:

Проблема возникает, когда я пытаюсь настроить haproxy для SSL между HAproxy и бэкэндами (которые ожидают SSL).

Согласно всей документации, которую я прочитал, следующие изменения должны меня полностью настроить:

backend be_php
    balance roundrobin
    server localhost_443 localhost:443 ssl verify none

backend be_rest
    balance roundrobin
    server dev_443 dev.example.com:443 ssl verify none

Но после внесения этих изменений https://localhost:8080 время ожидания запросов. И php backend, и REST backend могут быть доступны напрямую через https://localhost/app/... и https://dev.example.com/rest/...

Есть идеи относительно того, что я делаю неправильно?

РЕДАКТИРОВАТЬ: обновлено, чтобы отразить комментарий @ Michael-sqlbot