Я настраиваю HAProxy для перенаправления http на https, но, похоже, это не работает. Я использую следующую конфигурацию:
/etc/hosts
содержание
127.0.0.1 example.com
Конфигурация Haproxy
frontend http
mode http
bind :80
bind :443 ssl crt /etc/ssl/
redirect scheme https if !{ ssl_fc }
default_backend my_backend
Тестирование с помощью curl дает эту ошибку
$ curl https://example.com < this works
$ curl http://example.com
> curl: (7) Failed to connect to 2400:cb00:2048:1::681c:a20: No route to host
Однако команда lsof
имеет выход
$ sudo lsof -i :80 | grep LISTEN
haproxy 7290 root 4u IPv4 0x9485b36892b5495d 0t0 TCP *:http (LISTEN)
Я не понимаю, что не так в этой ситуации. Я впервые настраиваю SSL на Haproxy.
У меня очень похожая настройка в HAProxy, которая работает. Я могу найти только два отличия вашей конфигурации от моей.
/etc/hosts
Я связал example.com
к 0.0.0.0
скорее, чем 127.0.0.1
.В моем интерфейсе оба bind
записи содержат подстановочный знак (*
) перед толстой кишкой. Пример:
bind *:80
bind *:443 ssl crt /etc/ssl/ssl.pem
2а. Я на самом деле использовал файл pem в своей конфигурации (как указано выше), но, видя как curl https://example.com
работал вряд ли в этом проблема.
Я также предлагаю посмотреть на вывод netstat -tulpn | grep haproxy
для получения более подробной информации о привязке HAProxy.
Надеюсь, это поможет.