簡體   English   中英

在Apache代理下運行Flask jQuery示例

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM