Как настроить? есть сервер, nginx + php5-fpm т.к. нагрузка на один из сайтов стала расти, пришли к выводу, что необходимо нагруженный сайт вынести на отдельный инстанс. Вот встала задача. Теперь есть два сервера. на одном несколько сайтов, на втором один нагруженный. Могли бы тыкнуть носом что и где почитать, чтобы настроить работу этих двух серверов? Если бы был апач на бэкэнде, я б настроил и на одной и на другой машине по серверу и указал бы документ рут всем, а nginx просто проксировала бы. Но в моем случае настроено php5-fpm и апача нет, и как то нет мыслей как указать php5-fpm о том, где брать файлы. В настройках виртуал хоста, документрут будет повидимому относиться к локальным файлам? или к удаленным?
например так положить второй инстанс в папку php5/fpm/pool.d обозвать его как-нибудь в глобальной конфигурации nginx в качестве апстрима использовать его в локальной конфигурации хоста nginx в качестве апстрима
простите, для меня пока мало информации. в той папке что указали, находятся настройки php5-fpm и не вижу ни слова о втором сервере. только от куда разрешать подключения. я это уже прописал. параллельно еще вопрос. если по сети mount папки сделаю, скорости не прибавится наверное?
я папку наобум указал, но смысл понятен должен быть. видимо придется подробнее рассказывать раз смекалки нема... идем в /etc/php5/fpm/pool.d - вау я не наобум указал оказывается. видим там дефолтный http://www.conf копируем его как допустим www2.conf меняем в нем название инстанса и путь к сокету / порты сокета перезапускаем php5-fpm идем в /etc/nginx и если не умеем ранпартсом пользоваться то пишем прямо в nginx.conf следующую лабуду: Код (Text): upstream www2 { server unix:/run/www2-php5-fpm.sock; } не сложно догадаться что путь должен быть тем который мы указали в конфе www2.conf открываем конфигурацию нужного хоста и заменяем в нем дефолтный апстрим на www2. ведь уже есть работающая связка nginx+fpm и в нужном месте нужно вставить нужное значение: Код (Text): fastcgi_pass www2; проверяем конфигурацию nginx -t перезапускаем если всё хорошо service nginx restart всё просто, да? смотря что с папки будет браться.
И что это даст? я просто поменял шило на мыло. мне нужно обращение к другому серверу. здесь же мы создали просто копию текущей настройки и не более
nginx может принимать огромную кучу запросов и раздавать их огромной куче бэкэндов. мы создали два инстанса фпм и можем их по-разному настроить и таким образом каждый из них будет обрабатывать разное кол-во запросов. этот момент очевиден? еще можно проксировать на другой физический сервер. именно про инстанс было в первом посте. если надо было про проксирование к другому физическому серверу - надо было спрашивать про другой физический сервер. тогда настройка ничем не отличается от скажем настройки апача в качестве бэкэнда или для кги указать адрес-порт другой машини и фпм там повесить на ип.
да ну и как бы писал что есть 2 сервера... есть 2 машины. извиняюсь, если ввел в заблуждение. тоже так думал. на второй машине стоит apache2 и php5-fpm ОБА ДЛЯ ТЕСТА! апач на 80, фпм на 9000 порту. на первой машине (основной) в конфиге фиртуалхоста указываю fastcgi_pass 192.168.11.100; либо fastcgi_pass 192.168.11.100:9000; и каждый раз мне приходит локальный файл. как будто он и не стучится ко второму серверу. server { server_name test.site.ru; access_log on; log_not_found on; include nginx-bp/bootstrap/server2_bitrix.conf; root /var/www/sites/; } Добавлено спустя 48 секунд: не получится. знаний маловато
давай ты человеческим языком сформулируешь что у тебя есть и что ты хочешь из этого сделать. понятно что у тебя две машины. ты хочешь одной машиной принимать все запросы но запросы к одному из доменов уводить на обработку второй машиной? или тебе надо чтоб запросы к домену сразу уходили на вторую машину минуя первую?
Добавлено спустя 43 секунды: минуту. ща опишу еще раз Добавлено спустя 3 минуты 2 секунды: Была одна машина. крутится на ней 10 сайтиков. Крутится все на nginx+php5-fpm Один из сайтиков стал очень много кушать, поэтому мы решили перенести его на вторую машину. У второй машины нет внешнего IP, она во внутренней сети, поэтому необходимо сделать "переадресацию" запросов/обработки/рендер страниц жирного сайта на вторую машину. Чтоб если стучатся по домену site.ru, то физически работала вторая машина, со своим жестким диском, php5-fpm, mysql, memcache и п.р. Если стучатся по другим сайтам, то физически ПРОДОЛЖАЕТ отрабатывать первая машина, как сейчас. Добавлено спустя 48 минут 20 секунд: вобщем оказалось все проще... сделал тупо через proxy_pass
А внешний IP можете еще получить? Если да, то просто настраиваете NAT этого IP с внешней машины на внутреннюю. Если дополнительного IP нет - то nginx как прокси делаем Код (Text): server { server_name www.ru; location / { proxy_pass http://внутренний:80; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; } } А на втором сервере обычный nginx+php-fpm. Разве что для второго варианта на втором сервере добавить в конфиг nginx http://nginx.org/ru/docs/http/ngx_http_realip_module.html