Назад | Перейти на главную страницу

запустите 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>

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

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

<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