Высокопроизводительная платформа для RoR на основе Linux Gento
Есть свежеустановленный VDS с дистрибутивом gentoo-amd64-current и один мой знакомый разработчик попросил «выжать» из из этого максимум производительности. После ввода жмем control+x потом y потом enter. Ну а теперь скрипт: После окончания установки задаем пароль MySQL и запускаем: Пусть у нас все проекты создаются в /var/www. Создадим тестовый проект /var/www/test, и добавим его в Mongrel с правами nginx (вообще-то рекомендуется делать отдельного пользователя под каждый проект, это просто для упрощения): Мы поместили проект на 3000 порт. Для каждого проекта надо будет указывать новый порт. И стартанем Mongrel: Теперь Nginx. Настроем его проксировать все запросы к Mongrel, а статику отдавать напрямую. Конфиг сервера будет таким: Осталось добавить все службы в автозагрузку, чтоб после перезапуска VDS все поднялось само:
Будем ставить RoR+MySQL+Nginx+Mongrel+расширенную поддержку обработки графики.
Сначала надо поставить портежи и установить screen:cd /usr/wget ftp://mirror.mcs.anl.gov/pub/gentoo/snapshots/portage-latest.tar.bz2tar xjf portage-latest.tar.bz2rm portage-latest.tar.bz2emerge screen
Все дальнейшие команды лучше запускать в screen. Для того чтоб отсоеденить его надо нажать control+a потом d, а чтоб вернуть — выполнить screen -r
Для максимального облегчения я оформил все команды в виде скрипта. Создайте файл, заполните его содержимым а потом запустите: sh файл. И можете пойти выпить чашечку кофе, так как сборка займет время.
Но прежде надо раскрыть возможность поставить необходимый софт, который замаскирован, иначе ничего не выйдет. Выполните:
nano /etc/portage/package.keywords и введите:www-servers/mongrel_cluster ~amd64dev-ruby/ruby-debug ~amd64dev-ruby/ruby-openid ~amd64dev-ruby/ruby-yadis ~amd64dev-ruby/ruby-debug-base ~amd64dev-ruby/columnize ~amd64dev-ruby/linecache ~amd6#!/bin/shUSE="-ssl -perl" emerge dev-db/mysqlUSE="server" emerge dev-ruby/rubygemsemerge dev-lang/ruby dev-ruby/mysql-ruby dev-ruby/rubygems dev-ruby/ruby-termiosecho "dev-ruby/rmagick lcms gif imagemagick jbig jpeg jpeg2k pdf png svg tiff truetype unicode wmf xml xpm pcre" >> /etc/portage/package.useehho "media-gfx/imagemagick lcms gif imagemagick jbig jpeg jpeg2k pdf png svg tiff truetype unicode wmf xml xpm pcre" >> /etc/portage/package.useUSE="-perl" emerge media-gfx/imagemagick dev-ruby/rmagickUSE="mysql" emerge dev-ruby/railsemerge dev-ruby/rake dev-ruby/capistrano dev-ruby/daemons dev-ruby/gem_plugin www-servers/mongrel www-servers/mongrel_cluster dev-ruby/rmagick dev-ruby/bluecloth dev-ruby/redcloth dev-ruby/ruby-debug dev-ruby/ruby-termios dev-ruby/ruby-openid dev-ruby/ruby-yadisUSE="-perl fastcgi" emerge www-servers/nginxln -s /usr/lib64/ruby/gems/1.8/gems/mongrel_cluster-1.0.5/resources/mongrel_cluster /etc/init.d/mongrel_clusterchmod +x /etc/init.d/mongrel_clustermkdir /etc/mongrel_clusteremerge --config =dev-db/mysql-5.0.84-r1/etc/init.d/mysql startmongrel_rails cluster::configure -e production -p 3000 -N 3 -c /var/www/test -a 127.0.0.1 --user nginx --group nginx
Добавим сгенеренный конфиг в автозапуск:ln -s /var/www/test/config/mongrel_cluster.yml /etc/mongrel_cluster/test.yml /etc/init.d/mongrel_cluster start
server {listen 80;server_name test;access_log /var/log/nginx/test.access_log main;error_log /var/log/nginx/test.error_log info;location / {proxy_pass <a href="http://localhost/">localhost</a>:3000/;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $remote_addr;}location ~* ^.+\.(css|htm|html|js|txt|pdf|jpg|jpeg|gif|png|ico|zip|rar|bz2|gz|tar)$ {root /var/www/test/public;}}
Разумеется, что для каждого проекта надо будет прописывать каждый раз свою секцию server. Теперь запустим nginx./etc/init.d/nginx startrc-update add mysql defaultrc-update add nginx defaultrc-update add mongrel_cluster default
Источник:http://habrahabr.ru/blogs/linux/76621/
Вы можете отслеживать комментарии к этой записи с помощью RSS 2.0. Комментарии и эхо-тестирование не разрешены.


Комментарии не разрешены.