miv-men
@miv-men
php

Как настроить связки nginx + apache и nginx + php-fpm на одном сервере?

Здравствуйте!

Стоит задача что бы с одного сервера site1.ru работал на связке nginx + apache, а site2.ru на nginx + php-fpm.
Почему то не смог нагуглить ответ на свой вопрос.

Планировал порт 80 слушать nginx'ом, далее для site1.ru отправлять на :8080, :8080 будет слушать apache, а site2.ru отправлять на :8081 где будет слушать php-fpm

Настроил nginx + apache на оба домена без проблем.
Стал пробовать подключить для site2.ru nginx + php-fpm, почитал документацию и столкнулся с проблемой что nginx не отправляет по локахосту на другой порт, а все настраивается в конфиге nginx.
Настроил по инструкции и теперь у меня и site1.ru, и site2.ru отдает контент с site1.ru

Поделитесь кто может инструкцией по данной проблеме.
  • Вопрос задан
  • 204 просмотра
Пригласить эксперта
Ответы на вопрос 3
Sanes
@Sanes
!
<VirtualHost 127.0.0.1:8080>
    ServerName {{ username }}.loc
    ServerAlias {{ domains }}
    # ServerAlias example.*.xip.io

    DocumentRoot /home/{{ username }}/www

    <Directory /home/{{ username }}/www>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>

    <FilesMatch \.php$>
        # 2.4.10+ can proxy to unix socket
        SetHandler "proxy:unix:/var/run/php/php{{ php }}-fpm-{{ username }}.sock|fcgi://localhost/"

        # Else we can just use a tcp socket:
        # SetHandler "proxy:fcgi://127.0.0.1:9000"
    </FilesMatch>

    ErrorLog ${APACHE_LOG_DIR}/{{ username }}-error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    # CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined

</VirtualHost>
Ответ написан
xEpozZ
@xEpozZ
Веб-разработчик
А зачем php-fpm присваивать порт 8081? у него и 9000 прекрасно работает.

Покажите ваши конфиги.

> почитал документацию и столкнулся с проблемой что nginx не отправляет по локахосту на другой порт

Не совсем понятно, что вы имели ввиду. Для php-fpm есть fastcgi модуль.

Вангую, что вы потеряли server_name site1.ru;
Ответ написан
у вас три файла
1. общий который для неразобраных запросов по сути это мусорка, первый сайт на обычно висит на нем, но это неправильно поскольку это какраз таки ВСЕ домены то есть именно то что ведет здрасти вы на сервере.
2. У вас два конфиа в которых прописаны явно хосты и в одном из них указан прокси, а во второ FPM
3. У вас ssl выданы для каждого сайта, нельзя выдать ssl одному сайту ( специйфика подключения по SSL) если он есть хоть у одного сайта он появляется и у остальных. НО это отдельная тем.
И так
1. Удалите дефолтный конфиг он вам не нужен
2. удалите дефолтный для ssl поскольку он будет только мешать
3. выдайте клюии на каждый сайт
4. Укажите проксми в одном файле
5. Укажите FPM в другом файле
6. если у вас конфиги для ssl вынесены в отдельные файлы
например
site1.ru_ssl.conf - то в них тоже измените все настройки.
И все у вас будет работать
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы