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

Apache2: как обратный прокси субдомен на внутренний сервер с ssl

Я уверен, что об этом уже спрашивали, но ни один из ответов не работает для меня.

У меня есть домен domain.com. У меня есть поддомен sub.domain.com на том же IP. В таком случае sub.domain.com запись CNAME, указывающая на domain.com. У меня на этом сервере работает apache. У меня есть правило mod_rewrite в sites-available / default, которое перенаправляет все соединения, отличные от ssl, на ssl:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Пока это работает нормально. Если я подключусь к http://domain.com/foo Меня направляют к https://domain.com/foo с рабочим ssl.

Однако теперь у меня есть второй веб-сервер, работающий на этом сервере на другом порту, который я хочу сделать доступным через sub.domain.com. Я создал запись CNAME, указывающую sub.domain.com к domain.com поэтому оба имеют одинаковый IP-адрес. Я могу установить ssl-соединение со вторым сервером в https://domain.com:port и он отлично работает.

Насколько я могу судить, приведенный выше материал mod_rewrite не должен вызывать никаких проблем, потому что, если я подключусь к http://sub.domain.com Сначала меня перенаправят на https://sub.domain.com и затем это должно быть передано через прокси на второй веб-сервер.

Каждый учебник в блоге и ответ serverfault, за которым я следил, оставили мне конфигурации, которые либо отправляют все на domain.com или дать мне ошибки подтверждения ssl, когда я пытаюсь подключиться к sub.domain.com или domain.com.

Может ли кто-нибудь показать мне, как это правильно сделать, и объяснить, почему это работает?

Я предполагаю, что ваш субдомен находится не на том же виртуальном хосте, что и ваш домен. В этом случае добавление правила перезаписи к виртуальному хосту по умолчанию не будет иметь никакого эффекта; вам также необходимо установить правило перезаписи в файле конфигурации vhost для вашего поддомена (оно также должно быть в sites-available, если это ваш вариант по умолчанию, хотя имейте в виду, что это debianism, а не все установки apache, с которыми вы сталкиваетесь будет так).

Строки, которые у вас есть для конфигурации RewriteEngine, верны и должны работать, если они также скопированы в другой файл.