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