您好,登錄后才能下訂單哦!
這篇文章主要介紹了flask如何結合apache,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
flask自帶的開發Web服務器表現很差,響應慢,而且直接通過nginx進行反向代理,經常無法響應請求。有兩個可以在生產環境中使用、性能良好且支持Flask程序的服務器,分別是Gunicorn和uWSGI,但是這兩個模塊不提供對window的支持。
因此我們需要使用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)上面這條命令成功運行后,我們可以得到三條信息:
(4)然后使用這三條信息代替.so文件,加入到apache的配置文件中:
6、配置站點(重點):
# <VirtualHost> definition. These values also provide defaults for # any <VirtualHost> containers you may define later in the file.
因為我是一個不是很懂配置apache的人,我一開始看到參考鏈接中的配置<VirtualHost>不知道放在哪里,所以可以通過全文搜索,搜到了這句話,我可以確定將這個<VirtualHost>放在文件最底部。
將下面這段復制到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項目的配置:
項目目錄:
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('/hello') def hello_world(): return 'Hello World!' if __name__ == '__main__': 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如何結合apache內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。