Я хотел бы запустить приложение 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