首頁 >運維 >Apache >flask怎麼結合apache

flask怎麼結合apache

(*-*)浩
(*-*)浩原創
2019-10-29 11:17:573594瀏覽

flask自帶的開發Web伺服器表現很差,回應慢,而且直接透過nginx進行反向代理,經常無法回應要求。有兩個可以在生產環境中使用、效能良好且支援Flask程式的伺服器,分別是Gunicorn和uWSGI,但這兩個模組並沒有提供對window的支援。

flask怎麼結合apache

因此我們需要使用mod_wsgi這個模組使得flask能夠在apache上部署,mod_wsgi模組是一個python寫的Apache的FastCGI模組。   (建議學習:apache使用

下載完畢後解壓縮得到Apache24,打開進入conf文件,用文字打開,我這裡採用Atom打開。

現在說明一下,我們需要修改的地方:

1、ServerRoot "c:/Apache24":修改成自己的目錄位址

2、Listen 8080:連接埠號配置,部分使用者可能會發現自己的80埠佔用,可能是IIS或SQLserver佔用,我們可以透過修改這個連接埠號,方便測試

3、修改目錄授權

原本的:

<Directory />
AllowOverride none
Require all denied
</Directory>

修改後:

<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>

4、修改文件根路徑為自己的檔案路徑

DocumentRoot "c:/Apache24/htdocs"
<Directory "c:/Apache24/htdocs">

5、mod模組配置(重點)

# (1)首先對下載下來的mod.whl檔案進行安裝:

pip install

(2)安裝成功後,執行下面的命令:

mod_wsgi-express module-config

(3)上面這條指令成功運行後,我們可以得到三個訊息:

flask怎麼結合apache(4)然後使用這三個訊息代替.so文件,加入到apache的設定文件中:

flask怎麼結合apache6、設定網站(重點):

# <VirtualHost> definition.  These values also provide defaults for
# any <VirtualHost> containers you may define later in the file.

因為我是一個不是很懂設定apache的人,我一開始看到參考連結中的設定不知道放在哪裡,所以可以通過全文搜索,搜到了這句話,我可以確定將這個放在文件最底部。

將下面這段複製到conf檔案的最底部,並且修改路徑為自己的路徑

<VirtualHost *:8080 >
ServerAdmin example@xx.com
DocumentRoot E:\Environment\Apache\Apache24\text_web
<Directory "E:\Environment\Apache\Apache24\text_web">
Order allow,deny
Allow from all
</Directory>
WSGIScriptAlias / E:\Environment\Apache\Apache24\text_web\test.wsgi
</VirtualHost>

上面的網站設定說明:

(1)專案路徑(不一定要放在apache目錄下):

DocumentRoot E:\Environment\Apache\Apache24\text_web

(2)wsgi模組啟動檔(重點):

WSGIScriptAlias / E:\Environment\Apache\Apache24\text_web\test.wsgi

注意:這裡的「/」是必須的,表示url前綴,後面可以依需求修改。

(3)專案路徑權限:設定為允許全部

<Directory "E:\Environment\Apache\Apache24\text_web">
Order allow,deny
Allow from all
</Directory>

到這裡我們的httpd.conf檔案已經設定完成了。

二、下方進入flask專案的設定:

專案目錄:

flask怎麼結合apache

1 、test.wsgi檔說明:

import sys
sys.path.insert(0, "E:/Environment/Apache/Apache24/text_web") #项目路径

from test import app #將我們的flask項目project名引入

application = app #applcation一定不能改成別的,因為wsgin在解析這個文件時,只認applcation(參考連結)

2、flask的主文件

from flask import Flask
 
app = Flask(__name__)
 
@app.route(&#39;/hello&#39;)
def hello_world():
    return &#39;Hello World!&#39;
 
if __name__ == &#39;__main__&#39;:
    app.run()

到此,我們的專案配置基本上完成,這裡特別需要注意的是在wsgi檔中的項目引入。

三、啟動或安裝apache

啟動管理員模式的cmd進入到Apache24的bin檔案路徑下:

安裝apache為系統服務:

httpd -k install

啟動apache:

httpd -k start

我發現有的電腦可以直接透過開啟httpd.exe直接執行,而不需要將httpd安裝入系統服務。

其他可能用到的apache指令:

停止apache服務:

httpd -k stop

重啟apache服務:

httpd -k restart

至此,我們的flask專案透過wsgi模組搭建在apache服務已經完成建置完成,開啟localhost:8080/hello,看是否出現helloworld,如果發現專案仍然沒有設定成功,請留意apache的錯誤輸出日誌。錯誤輸出日誌在\Apache24\logs\error.lo

以上是flask怎麼結合apache的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn