Запустить 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>

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 on

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

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