запустить Apache и node.js в подпапке

Я хотел бы запустить приложение meteor.js во вложенной папке ( / home / www / public / v1 ) домен ( / home / www / public ), обслуживаемый сервером Apache (2.4.7). Я настроил виртуальный хост, который прослушивает порт 80 и прокси-серверы, начиная с «v1», в приложение nodejs. Он работает нормально (я думаю), за исключением того, что я получаю страницу 404, сгенерированную meteor.js.

Должен ли я изменить настройку meteor.js, чтобы принимать запросы, поступающие из «domain.tld / v1» вместо «domain.tld» ? Если да, то какие файлы? Возможна ли вообще такая установка?

Конфигурация виртуального хоста (отредактировано для удобочитаемости)

<VirtualHost *:80>
    ServerName domain.tld
    DocumentRoot /home/username/www/domain.tld/public

    <Directory />
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    <Directory /home/username/www/domain.tld/public/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from All
        Require all granted
    </Directory>

        # NODEJS APP in V1 FOLDER
        ProxyRequests on
    <Proxy *>
        Order deny,allow
        Allow from all
        Require all granted
    </Proxy>
    <Location "/v1/">
        ProxyPreserveHost on
        ProxyPass http://localhost:3000/
        ProxyPassReverse http://localhost:3000/
    </Location>
 </VirtualHost>
0
задан 26 November 2015 в 16:48
1 ответ

Конфигурация

Ваша конфигурация верна, но некоторые параметры устарели, а другие не требуются:

<VirtualHost *:80>
    ServerName domain.tld
    DocumentRoot /home/username/www/domain.tld/public

    <Directory />
        Options +FollowSymLinks
        AllowOverride All
    </Directory>
    <Directory /home/username/www/domain.tld/public/>
        Options +Indexes +FollowSymLinks +MultiViews
        AllowOverride All
    </Directory>

    # NODEJS APP in V1 FOLDER
    <Location "/v1">
        ProxyPass http://localhost:3000/V1
        ProxyPassReverse http://localhost:3000/V1
    </Location>
 </VirtualHost>

Meteor.js будет перенаправлен с порта 3000 / v1 на порт 80 / v1

Дополнительная информация:

Этого больше нет в Apache 2.4

Order allow,deny
allow from All

Это необходимо, когда у вас есть ограничение.

Require all granted

Это заставит ваш сервер проксировать любой запрос, и это не требуется для того, что вам нужно ( https : //httpd.apache.org/docs/2.4/en/mod/mod_proxy.html#proxyrequests )

ProxyRequests on

В вашем случае это необязательно ( https://httpd.apache.org/docs/2.4/en/mod/mod_proxy.html#proxypreservehost )

ProxyPreserveHost on
2
ответ дан 4 December 2019 в 13:45

Теги

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