apache + nginx (только для одного субдомена)

У меня есть симпатичный маленький Сервер с Ubuntu 12.04 LTS с Apache, управляемым plesk. Теперь я установил nginx для моего поддоменов Gitlab.

Но теперь nginx хочет все контролировать. Как я могу настроить сервер nginx для предоставления только одного субдомена: git.example.com

1
задан 12 October 2012 в 16:10

1 ответ

Вы не можете запустить их обоих на одном и том же порту. По умолчанию оба захотят победить 0.0.0.0:80, а это не включено. Два простых варианта:

  • Добавить IP, привязать nginx к его порту 80, указать DNS на этот IP.
  • Установите nginx на другом порту (например, 8080) и используйте директиву Apache ProxyPass, чтобы перенести один виртуальный хост обратно на nginx:

    <VirtualHost *:80>
        ServerName git.example.com
        DocumentRoot /path/to/myapp/public
        ProxyPass / http://localhost:8080/
        ProxyPassReverse / http://localhost:8080/
    </VirtualHost>
    

    На самом деле это довольно часто - просто наоборот. Большинство людей ставят nginx на необработанный порт 80 и позволяют ему обрабатывать ввод-вывод необработанных файлов и возвращают прокси обратно в Apache, если им нужно что-то вроде mod_php. Вы могли бы сделать это, но это, скорее всего, больше работы.

Есть - как всегда - сто тысяч миллионов различных способов делать подобные вещи. Это две основные из них.

0
ответ дан 12 October 2012 в 16:10

Другие вопросы по тегам:

Похожие вопросы: