Я использую HAproxy для балансировки нагрузки между серверами Apache. Я пытаюсь отключить HTTPS для особого случая использования (обслуживание файлов кикстарта), и для этого я использую порт 8000. У меня есть конфигурация HAProxy, которая выглядит примерно так (некоторые конфигурации были опущены):
frontend provision_frontend_b
bind 10.1.1.1:8000
mode http
default_backend provision_backendb
backend provision_backendb
mode http
server server1 127.0.0.1:8000 weight 1
server server2 10.1.1.2:8000 weight 1
Я хочу, чтобы HAProxy перенаправлял запросы, сделанные на внешний IP-адрес на порту 8000, на адрес обратной связи на порту 8000, где я прослушивал Apache. Apache настроен для обслуживания статических файлов через HTTP.
Как ни странно, когда я попадаю на сервер из своего браузера, используя DNS-имя внешнего интерфейса: http: //myhost.mydomain: 8000, Меня перенаправляют на HTTPS и возникает ошибка сертификата SSL. Когда я пытаюсь использовать IP, http://10.1.1.1:8000, он работает (и не перенаправляет на HTTPS).
Есть ли причина, по которой HAProxy сделал бы это? Это не похоже на Apache, поскольку я настроил HAProxy для перенаправления на другие HTTP-серверы Apache и по-прежнему получаю эту ошибку.
Единственное, что я вижу в конфигурации HAProxy, - это другой интерфейс, настроенный для перенаправления на SSL:
frontend http_frontend
bind :80
mode http
redirect scheme https if !{ ssl_fc }
Однако он прослушивает другой порт. Я попытался прокомментировать перенаправление, но это не помогло.
Нет, это не Хапрокси. Haproxy не имеет ничего общего с вашим перенаправлением https. Похоже на myhost.mydomain был кэширован в вашем веб-браузере для внутреннего перенаправления 307. Которая всегда будет отправлять ваш трафик в режиме https. Очистите кеш и удалите файлы cookie в браузере, все должно работать. Я не уверен, что вы могли бы сделать что-нибудь со стороны сервера, однажды я столкнулся с этой проблемой, я попытался принудительно перенаправить на схему http, но затем ошибка многих редиректов подошел.