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

Запрос не попадает в порт 80 на HAproxy

Я настраиваю 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, которая работает. Я могу найти только два отличия вашей конфигурации от моей.

  1. В /etc/hosts Я связал example.com к 0.0.0.0 скорее, чем 127.0.0.1.
  2. В моем интерфейсе оба bind записи содержат подстановочный знак (*) перед толстой кишкой. Пример:

    bind *:80
    bind *:443 ssl crt /etc/ssl/ssl.pem
    

    2а. Я на самом деле использовал файл pem в своей конфигурации (как указано выше), но, видя как curl https://example.com работал вряд ли в этом проблема.

Я также предлагаю посмотреть на вывод netstat -tulpn | grep haproxy для получения более подробной информации о привязке HAProxy.

Надеюсь, это поможет.