В настоящее время у меня есть плавающий IP-адрес, указывающий на сервер, на котором размещено несколько сайтов, некоторые с SSL, другие без.
Мне нужно выключить, сделать резервную копию и изменить размер указанного сервера - и я надеялся настроить простую страницу удержания на небольшом экземпляре VPS - поменять местами плавающий IP-адрес, улавливая весь трафик и перенаправляя.
У меня был этот запуск с использованием 'servername _' в качестве подстановочного знака для перехвата всех доменных имен, однако (несмотря на то, что порт был открыт) - мне не удалось получить доступ к сайту по адресу HTTPS - и когда я добавил перенаправление на основе схемы (направляя на HTTP) - похоже, это не подействовало?
Любая помощь очень ценится. Я полагаю, что это, вероятно, относительно простой серверный блок nginx.
При использовании классических настроек SSL требовалось иметь уникальный IP-адрес для каждого сертификата SSL. Вы не упомянули, делаете вы это или нет. Если это так, то простого указания одного IP-адреса на временном VPS будет недостаточно для отображения сайтов SSL - все IP-адреса для сайта SSL также должны быть указаны там.
Совсем недавно был создан SNI, позволяющий обслуживать несколько сертификатов SSL с одного IP-адреса. Недостатком этого подхода является ограниченная поддержка браузеров. Если вы используете SNI или желаете, то вы можете обслуживать все свои домены с одного IP-адреса независимо от того, нужен им SSL или нет.
Согласно комментариям, если вы хотите поймать трафик по HTTPS, вы должны определить блок сервера, который обслуживает правильные сертификаты SSL для рассматриваемых доменов. Согласование SSL происходит до того, как вы сможете отправить перенаправление в браузер, и если nginx не может предоставить действительный сертификат для домена, возникнут ошибки.
Вам нужен только один серверный блок, прослушивающий порт 80, чтобы перехватить весь HTTP и обслужить вашу статическую страницу удержания; вам даже не нужно объявлять server_name, поскольку это, вероятно, будет единственным блоком, который в любом случае соответствует трафику порта 80 (или вы можете использовать listen 80 default_server;
так что он определенно используется другим неперехваченным трафиком, если вы обслуживаете другие домены, которые необходимо хранить отдельно).
Я бы лично рекомендовал, чтобы для каждого блока ssl-сервера вы обслуживали страницу хранения напрямую, а не перенаправляли на другой домен (или даже не на тот же домен https), который обслуживает страницу, хотя бы во избежание путаницы в Google и других поисковых системах, которые сканируют ваш домены.