我正在使用一個使用全堆棧來顯示其所有網頁的框架。這個標準在端口上運行。非常好,但是當投入生產時,服務器似乎阻止了除少數標準端口之外的所有內容。將前端網址重定向到另一個後端網絡服務器
因此,框架(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