我正在使用一个使用全堆栈来显示其所有网页的框架。这个标准在端口上运行。非常好,但是当投入生产时,服务器似乎阻止了除少数标准端口之外的所有内容。将前端网址重定向到另一个后端网络服务器
因此,框架(Play框架),建议您在您的前端Web服务器(在我的情况下是Apache2)执行此操作。
文件: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发行版上运行)
这个想法是运行两个web服务器,一个前端和一个后端与应用程序。 重新加载的Apache网络服务器工作正常,网站启用和一切,但当我冲浪到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。如果你只是想使用反向代理,这是必要的吗?
在您的实际配置中,“ServerName”指令是否与您请求的URL匹配?你的例子显示了'ServerName playtest',在这种情况下,如果你正在访问'http:// my.website.com/dev/app',应该是'ServerName my.website.com'。 – clmarquart 2011-05-04 12:49:41
感谢您的快速回复。我的印象是servername是arbirtrary,对不起:)我在我的前端文章中编辑过这个文件。它虽然没有解决问题,但感谢您指出了这一点! – Jasper 2011-05-04 13:00:42
编辑3 ...这让人非常讨厌...感谢迄今为止的帮助(不嘲讽!),希望随时获得解决方案! – Jasper 2011-05-11 13:57:15