Большие вещи, которые нужно сделать при развертывании приложения рельсов - PullRequest
9 голосов
/ 19 сентября 2008

В вопросе Какие мелочи нужно сделать перед развертыванием приложения rails Я получаю множество ответов, которые больше, чем "мелочи". Так что этот вопрос немного отличается.

Какие достаточно важные шаги мне нужно предпринять перед развертыванием приложения rails. В данном случае я имею в виду то, что займет более 5 минут, и поэтому должно быть запланировано. Для небольших изменений конфигурации oneline, пожалуйста, используйте вопрос мелочи.

Ответы [ 3 ]

11 голосов
/ 19 сентября 2008

Настройка Capistrano для развертывания Вы захотите изучить capistrano, если вы его еще не знаете, и использовать его для автоматического развертывания кода. Это потребует настройки вашего общего каталога и общих ресурсов, таких как database.yml.

Установить гем MySQL на основе C Если у вас нет всех необходимых библиотек, это может занять некоторое время, но менее 20 минут.

Убедитесь, что вы не уязвимы к обычным атакам веб-приложений Фиксация сеанса, перехват сеанса, межсайтовый скриптинг, внедрение SQL (вероятно, вам не нужно сильно беспокоиться о внедрении SQL). Обязательно используйте h () при выводе введенных пользователем данных на экране просмотра. Много хорошего материала в Интернете об этом.

Выбор архитектуры сервера Nginx, Mongrel, FastCGI, CGI, Apache, Passenger: есть из чего выбирать. Подумайте, как будет использоваться ваше приложение, и выберите лучшую архитектуру, а затем настройте ее.

Настройка уведомлений об исключениях или регистратора исключений Вы захотите, чтобы ваше приложение предупреждало вас о сбоях. Установите один из этих инструментов, чтобы отслеживать производственные исключения. Примечание. Уведомление об исключении будет предупреждать вас при возникновении ошибок маршрутизации (т. Е. Когда на вас нападают URL-адреса или шутники): так что подумайте о том, что должна делать среда, когда это произойдет, и внесите соответствующие изменения.

Убедитесь, что все ваши пароли находятся вне контроля исходного кода Если у вас есть database.yml, mail.yml (если вы используете yaml_mail_config) или другие конфиденциальные файлы в управлении исходным кодом, достаньте их оттуда, замените их на database.yml.example и поместите в папку shared / на вашем сервере.

Убедитесь, что ваша БД заблокирована. Многие люди забывают защитить MySQL при настройке своего нового рабочего Rails-бокса. Не будь как они.

Убедитесь, что все маленькие веб-файлы на месте Если вы планируете быть в Google, создайте файл sitemap.xml . Если вы планируете использовать файл. htaccess для чего-то, убедитесь, что он там есть. Если вам нужен файл robots.txt для предотвращения индексации определенных областей вашего сайта, создайте его. Если вам нужна красивая 404 страница , убедитесь, что она настроена правильно. Если вы хотите, чтобы при развертывании присутствовала страница «Вернитесь назад», убедитесь, что у вас задан файл обслуживания Capistrano, а Nginx или Apache знают, как и когда перенаправлять на него.

Получите сертификаты SSL на месте Если вы собираетесь использовать SSL, убедитесь, что вы получили сертификаты, действительные на рабочем домене, и настройте их.

3 голосов
/ 19 сентября 2008

Использовать некоторый мониторинг процесса

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

monit и god - хороший выбор, чтобы спасти вас от этой судьбы. Они также могут быть настроены так, чтобы на вашем сайте отображался URL-адрес для проверки кода ответа 200.

Настройка мониторинга сервера

Некоторые предложения в этом пространстве: fiveruns , newrelic , разведчик

Эти инструменты будут записывать подробные метрики на ваших серверах и будут неоценимы, когда что-то пойдет не так, и вам нужно увидеть, что на самом деле произошло. Они также дают вам информацию о нагрузке на сервер в режиме реального времени.

Если у вас есть кластер, такой тип отчетности еще более критичен.

Резервное копирование

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

1 голос
/ 19 сентября 2008

Выберите веб-сервер / балансировщик нагрузки

Мой предпочтительный сервер - nginx, но общий шаблон должен начинаться с apache + mod_proxy_http.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...