2014-02-01 5 views
1

Представьте, что я хочу отправить новые файлы (PHP, SQL, HTML) на сервер. Предположим, что я использую безопасное соединение. Мой вопрос:Как безопасно обновлять веб-сайт?

«Как лучше всего не попасть в нежелательный сбой при передаче новых файлов?»

Пример может быть:

«Перед обновлением сайта был достаточно безопасным Для новой версии, я ве обновил систему для проверки подлинности пользователя :. Теперь достаточно, чтобы написать простой include($VERIFICATION_FILE_PATH), где вы хотите, чтобы проверить пользователю доступ к содержимому. к сожалению, я решил загрузить файл $VERIFICATION_FILE_PATH последние (многие PHP файлы были изменены во время этого обновления, чтобы использовать новую систему). "

использование include оказывает се rver менее безопасен во время загрузки, учитывая, что перед загрузкой файла $VERIFICATION_FILE_PATH они производят предупреждения вместо проверки личности пользователя.

Я знаю, что эта проблема может быть легко избежать, приняв решение, чтобы загрузить файл $VERIFICATION_FILE_PATH первыми, а затем обновить другие или просто заменить include с require (который продуцирует другой глюк ...), это всего лишь пример.

ответ

2

Там нет никакого способа, чтобы обновить сайт, пока он используется, но есть несколько способов, чтобы легко заблокировать пользователь из сервера при обновлении:

  • Поместите сайт в «режиме обслуживания», который перенаправляет пользователей на другую страницу, блокируя их из обновляемого раздела.
  • Отнесите весь сервер в автономном режиме во время обновления, в то время как у вас есть служба кеширования поверх него, например Cloudflare, которая будет поддерживать некоторые части веб-сайта до тех пор, пока загрузка не будет выполнена, и вы сможете ее открыть.
+1

Это абсолютно возможно обновить без каких-либо сбоев, это просто зависит от того, что * * * и * подготовка * вы готовы сделать для этого. Например, вы можете перевернуть посетителей между копией сайта. В простейшем случае вы создаете копию сайта на сервере, обновляете копию и переворачиваете корень документа. Изменение сайта кодирования для обработки возможности некоторых файлов и функций, которые еще не существуют, является другим способом или для того, чтобы функция была неактивной до включения. Это также позволяет отменить изменение и позволяет загружать коммиты, которые еще не готовы к производству. * Планирование * является ключевым. – Nick

+0

@Nick Как я уже упоминал выше, он может перенаправить пользователей из обновляемого раздела, а «перевертывание посетителей между копией» все равно получит 404 или любую другую ошибку, если они попытаются посетить, пока происходит изменение –

+1

«все еще будет получить 404 или любую другую ошибку, если они попытаются посетить, пока происходит изменение », - говорит по опыту, а не если вы делаете это правильно. Например, щелкнуть корень документа - это атомное изменение и не должно вызывать никаких проблем. Изменения в подчастих сайта могут быть аналогично обработаны с помощью псевдонимов или других методов. В более широком масштабе миграция пользователей на новый сервер «на лету» также возможна без глюков; на ionCube мы неоднократно управляли сложными внутрисерверными обновлениями и миграциями. Вам просто нужно планировать и тщательно прорабатывать изменения :) – Nick

1

Ну, как правило, вы закрываете эту услугу, пока вы ее обновляете.

Итак, прежде чем загружать свои новые файлы на свой сервер, вы должны выбрать дату, а затем распространить слово, что ваш сайт будет отключен для обслуживания в эту дату, а затем, когда наступает эта дата, вы остановите свой apache, загрузите все ваши файлы, а затем перезапустите apache.

Чтобы никто не смог получить доступ к вашему обновленному обновленному веб-сайту.

Поскольку это довольно сложно (и имеет некоторые пробелы для человеческой ошибки), вы захотите иметь тестовый сервер в надежной локальной сети, где вы можете попробовать весь процесс установки несколько раз, прежде чем пытаться применить его к производству сервер.

Смежные вопросы