[英]running Flask jQuery example under Apache proxy
我可以成功運行Flask jQuery示例 (在Flask的“帶有jQuery的AJAX”頁面的底部附近提到。)它在flask開發服務器上運行,可以從http://localhost:5000
。
如何代理頁面,以便可以在http://localhost/jqueryexample
下訪問同一應用程序?
我將此添加到我的Apache VirtualHost條目中,認為它可以解決問題:
ProxyPass /jqueryexample http://localhost:5000/
ProxyPassReverse /jqueryexample http://localhost:5000/
但是新的網址顯示404錯誤:
GET http://localhost/_add_numbers?a=6&b=2 404 (Not Found)
我如何才能使該示例在“規范URL”下正確運行(不確定這是否是正確的術語)? 或者,如何更改應用程序或Apache配置,以使這兩個URL都運行此jQuery示例?
順便說一句,這是您下載和運行有問題的香草Flask jQuery示例的方法:
git clone http://github.com/mitsuhiko/flask
cd flask/examples/jqueryexample/
python jqueryexample.py
好吧,在進一步研究之后,我想我回答了我自己的問題:
顯然,與其運行燒瓶開發服務器並嘗試通過Apache httpd代理它,不如最好使用mod_wsgi將應用程序直接部署到Apache。 有關如何執行此操作的指南已在此處詳細記錄。 實際上,對於生產而言,完全不建議使用dev服務器(請參閱此處) 。
至於部署jQuery Flask示例本身,這是您要做的(假設您的DocumentRoot是/var/www/html
):
# Get the example code.
git clone http://github.com/mitsuhiko/flask
cd flask/examples/jqueryexample/
# Create WSGI file.
echo "\
import sys\
sys.path.insert(0, '/var/www/html/jqueryexample')\
from jqueryexample import app as application\
" > jqueryexample.wsgi
# Deploy to httpd.
sudo mkdir /var/www/html/jqueryexample
sudo cp -r * /var/www/html/jqueryexample/
現在將其添加到您的VirtualHost中:
WSGIScriptAlias /jqueryexample /var/www/html/jqueryexample/jqueryexample.wsgi
<Location /var/www/html/jqueryexample>
Allow from all
Order allow,deny
</Location>
然后重新啟動httpd。 現在,通過http://localhost/jqueryexample
正在運行的應用程序。 瞧!
我前面沒有安裝Apache,但是如果您代理該應用程序,則不應該將index.html的第6行更改為
$.getJSON($SCRIPT_ROOT + '/_add_numbers', {
至
$.getJSON($SCRIPT_ROOT + '/jqueryexample/_add_numbers', {
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.