Я использую фреймворк, который использует полный стек для отображения всех своих веб-страниц.Это стандартно работает на порту 9000 .Очень хорошо, но при запуске в производство сервер, похоже, блокирует все, кроме нескольких стандартных портов.
Поэтому, поэтому, фреймворк (Play framework), советует вам сделать это на вашем интерфейсном веб-сервере (вВ моем случае Apache2).
file: play.conf
<VirtualHost *:80>
ServerName http://avon.ugent.be
CustomLog /var/www/log/proxy-access.log common
ErrorLog /var/www/log/proxy-error.log
ProxyPreserveHost On
DocumentRoot /var/www
<Location /dev/app>
AuthType Basic
AuthName "Test Omgeving"
AuthUserFile /var/trac/htpasswd
Require valid-user
ProxyPass http://127.0.0.1:9000/
ProxyPassReverse http://127.0.0.1:9000/
</Location>
</VirtualHost>
Для этого, конечно, требуется модуль mod_proxy , который активируется с помощью a2enmod mod_proxy
.(Я запускаю это в дистрибутиве Debian)
Идея состоит в том, чтобы запустить два веб-сервера, один интерфейсный и один серверный с приложением.Перезагрузка веб-сервера apache работает нормально, сайт включен и все, но когда я перехожу к URL-адресу http://my.website.com/dev/app
, он отображает 404 ... Предложения, что не так?
EDIT3:После 10 с лишним часов попыток все сводится к следующему: я нашел команду отладки (наконец: p), и это вывод:
apache2ctl -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server avon.ugent.be (/etc/apache2/sites-enabled/000-default:1)
port 80 namevhost avon.ugent.be (/etc/apache2/sites-enabled/000-default:1)
port 80 namevhost avon.ugent.be (/etc/apache2/sites-enabled/play.conf:1)
Syntax OK
, который указывает, что виртуальный сервер действительно добавляется в конфигурацию,Но, тем не менее, он отображает 404. Теперь, где-то я читал, потому что в этом пути нет index.html.Это необходимо, если вы просто хотите использовать обратный прокси-сервер?