AlexeevVyacheslav
@AlexeevVyacheslav
Веб-разработчик из Иркутска

Как правильно настроить RVM, Thin и Nginx?

Привет, друзья!
Первый раз устанавливаю Thin, весь день не могу настроить.
Есть сервер Debian 7 x64, установлен Ruby через RVM и гемы рельсов и thin, Nginx.
Thin нормально запускается и работает из папки проекта командой thin start

В руководстве есть строка:
/usr/sbin/update-rc.d -f thin defaults
Которая показывала мне ошибку:
update-rc.d: using dependency based boot sequencing
update-rc.d: warning: default stop runlevel arguments (0 1 6) do not match thin Default-Stop values (S 0 1 6)
insserv: warning: current stop runlevel(s) (0 1 6) of script `thin' overrides LSB defaults (0 1 6 S).


В конце концов в файле /etc/init.d/thin я заменил «S 0 1 6» на «0 1 6». Прокомментируйте, пожалуйста, правильно ли я сделал?

А теперь самое вкусное: то, что я просто не понимаю.
В руководстве написано

then start your Thin cluster like this:
thin start -s3 -p 5000

To connect to Nginx using UNIX domain sockets edit the upstream block in your nginx config file:
nginx.conf

upstream  backend {
   server   unix:/tmp/thin.0.sock;
   server   unix:/tmp/thin.1.sock;
   server   unix:/tmp/thin.2.sock;
}


Какой смысл мне делать кластер из 3х серверов? Имеется в виду, что здесь создается 3 сервер для 3 хостов в nginx? Или просто для работы thin нужны 3 сервера? Почему порт 5000? Это порт для внутренней работы сервера или сайты будут доступны по портам 5001 5002 и 5003? Будет ли такая конфигурация работать с PHP? Nginx.conf то общий для всех.

Вот все те вопросы, которые я не смог нагуглить
Извините, если я излишне туп любопытен:)
Спасибо!
  • Вопрос задан
  • 4301 просмотр
Решения вопроса 1
Vakiliy
@Vakiliy
1. Да, не к чему в в одно пользовательском режиме сервис thin`а - про runlevel

2. Подразумевается, что запускается три сервера на одной машине и обслуживают запросы от клиентов, в Вашем случае таковых 3 штуки. Используется для балансировки нагрузки, например когда один сервере выполняет "тяжёлую" задачу, и приходят еще запросы от клиентов.
2.1 Порт может быть использоваться любой выше 1024.
2.2 Сервера Thin`а, по умолчанию, будут доступны в сети с адресом, если память не изменяет, 0.0.0.0 (т.е любой), для привязки к конкретному адресу, надо запускать с ключем -a, пример thin -a 127.0.0.1

Про upstream в конфиге nginx'а, как раз таки и используется для создания пула с целью балансировка нагрузки, только у вас в настройках указан юниксовые сокеты, (запуск thin -S /tmp/thin.sock -s3)

Про связку с php, потребуется до настройка Nginx под конкретную конфигурацию, т.е. что будет выступать бакендом для php (apache. fastcgi), и какие условия для перенаправлявления на этот бакенд.
Как то, так.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект