Вывести сайт на всеобщее обозрение, но оставить для тестирования... "Мы не открыты"
Завтра мы развернем сайт для клиента, использующего IIS.
Я хочу донести сайт до широкой публики (извините, мы обновляем сообщение) и разрешить клиенту провести тестирование в выходные дни после того, как мы выполним обновление.
Если это успешно, я открываю это для всех - если нет, я делаю откат.
Какой самый простой способ поставить знак "Мы не открыты" для широкой публики, а остальные оставить открытыми для тестировщиков?
6 ответов
Перенаправление через IIS. Создайте новый сайт в IIS и поместите сообщение "Извините за обновление" в Default.aspx. Затем переключите порты между реальным сайтом (из 80 перейдите к чему-то другому (6666)) и сайтом "технического обслуживания" (установите на 80).
Затем скажите своим тестерам, чтобы они зашли на yoursite.com:6666.
Затем переключите реальный сайт обратно на 80 после удаления сайта "обслуживания".
Я подумал, что стоит упомянуть функцию ASP.NET 2.0+ "app offline". (Да, я понимаю, что спрашивающий хочет оставить приложение для тестирования, но я пишу это для более поздних читателей, которые могут прийти сюда с разными потребностями).
Если вы действительно хотите перевести приложение в автономный режим для всех (например, для обслуживания сервера), есть очень простой вариант. Все, что вам нужно сделать в ASP.NET 2.0 и выше, это поместить файл с таким именем:
app_offline.htm
... в корневом каталоге вашего приложения ASP.NET. Поместите туда соответствующее сообщение "извините, вернемся позже". Вот и все. Среда выполнения ASP.NET сделает все остальное.
Подробности в блоге Скотта Гатри.
Запустите еще один "сайт" в IIS, который будет перехватывать заголовок вашего основного сайта. Используйте либо пользовательскую страницу 307/503/404 с надписью "Мы не можем вести обслуживание", либо используйте какое-либо переписывание URL-адресов, чтобы перенаправить людей в один статический файл.
переключите привязку заголовка узла на вашем реальном сайте на что-то другое, например dev.domain.com или testing.domain.com, которое используют ваши разработчики.
Или заблокируйте по IP-адресу, и ваша пользовательская страница "Не авторизованный" сообщит посетителям, что ваше обслуживание.
У вас есть несколько вариантов.
Требовать, чтобы тестеры входили в систему. Вы даже можете скрыть страницу входа, так что вам нужна прямая ссылка, чтобы даже увидеть ее. Затем, для всех людей, которые не вошли в систему, перенаправьте на страницу, которая отображает ваше сообщение.
Некоторые методы, которые я использовал раньше:
- Проверка подлинности Windows и / или отдельные поддомены для тестирования клиентом.
- Отключите анонимный доступ к веб-сайту в IIS и дайте своему клиенту комбинацию имени пользователя и пароля для тестирования веб-сайта.
- Отключите документ по умолчанию в IIS и дайте своему клиенту абсолютный URL-адрес основного индексного файла.
У нас, как правило, есть страница входа в систему и включаемый файл на всех страницах сайта (обычно это соединение с БД, поскольку оно включено во все файлы), который проверяет наличие действительного сеанса вошедшего в систему. Если вы не вошли в систему, вы получите сообщение о том, что сайт закрыт на обслуживание