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

корректная остановка fastcgi-mono-server, обновление содержимого веб-сайта без необходимости его перезапуска

В последнее время я много играл с Mono 2.10.5 с .NET 4 и MVC 3 с бритвенными представлениями. Теперь я размещаю свой веб-сайт с настроенными nginx и fastcgi-mono-server4. Хотя веб-сайт по-прежнему не известен широкой публике (и не станет известным до тех пор, пока он не достигнет желаемого состояния), мы тестировали его в течение многих дней, и пока все, похоже, работает нормально.
Итак, учитывая контекст, давайте перейдем к вопросам, которые несколько раз сводили меня с ума:

  1. Могу ли я обновить содержимое моего веб-сайта (например, DLL) без безопасного перезапуска процесса fastcgi? Есть ли вероятность мгновенного сбоя для моих посетителей, когда я это делаю?
  2. Как я могу корректно остановить fastcgi-mono-server? Скрипт инициализации я взял из http://yojimbo87.github.com/2010/03/14/mono-startup-script.html в качестве основы, но он просто убивает (отправляет SIGTERM) процесс fastcgi-mono-server, не вызывая Application_End в Global.asax (и это то, что я имею в виду под некорректным завершением работы). SIGHUP тоже не сработает (хотя и убивает сервер)

Кроме того, я не могу найти страницу, чтобы следить за новостями или состоянием mono-fastcgi-server, единственными ссылками, которые я научил меня, как настроить сервер и его основные принципы работы, но у меня НЕТ ИДЕИ, где бы ищите новые версии и журналы изменений (или даже страницу загрузки, до сих пор я использовал portage для установки пакета xsp, который поставляется с fastcgi-mono-server). я нашел http://kerrick.wordpress.com/2007/08/ но последний пост о fastcgi-mono-server настолько стар, что меня пугает.

Если я могу задать последний вопрос, как я могу запустить fastcgi-mono-server от имени непривилегированного пользователя? Я боюсь пытаться настроить процесс, так как я не совсем уверен, будет ли mono уважать флаг setuid (еще не пробовал) и, что наиболее важно, я не уверен, нужен ли fastcgi-mono-server root доступ в какой-то момент, чтобы установить вещи. Я глубоко склонен попробовать что-нибудь в этом направлении, но, поскольку я не могу найти никаких документов по этому поводу, я еще ничего не сделал. Очевидно, я в отчаянии, поскольку сервер работает как root !!

Заранее спасибо!

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

Постараюсь отвечать, избегая новых вопросов, но не гарантированно:

  1. Я думаю, нужно попробовать, это можно сделать так же, как при обновлении в обычном сценарии развертывания IIS. Понимание динамической компиляции ASP.NET может помочь разобраться в этом подробнее. Обновляет побочные эффекты всегда можно свести к минимуму и все зависит от ваших потребностей.
  2. Можно запустить несколько экземпляров fastcgi-mono-server, все еще исследуя некоторые детали, прослушивая разные внутренние порты. Мне удалось это сделать, но требуется дополнительное тестирование.

Еще 2 вопроса ...

Я также не нашел много новостей и документации по этому вопросу, но я использую fastcgi-mono-server, fastcgi-mono-server2 и fastcgi-mono-server4 без каких-либо проблем, и, как и вы, у меня есть mono 2.10.5 . Считайте себя авантюристом в мире asp.net + mono. Я постараюсь больше писать в блоге о своих выводах, чтобы внести свой вклад в более широкое обсуждение.

AFAIK fastcgi-mono-server не нужно запускать от имени привилегированного пользователя, то есть root-доступ не требуется. Я также больше исследую уровень безопасности, потому что на уровне развертывания / запуска моих приложений прямо сейчас я чувствую, что достиг стабильного решения.

Надеюсь, это может пролить свет на ваши сомнения ... и мои.