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的人,我一開始看到參考連結中的設定不知道放在哪裡,所以可以通過全文搜索,搜到了這句話,我可以確定將這個
將下面這段複製到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專案透過wsgi模組搭建在apache服務已經完成建置完成,開啟localhost:8080/hello,看是否出現helloworld,如果發現專案仍然沒有設定成功,請留意apache的錯誤輸出日誌。錯誤輸出日誌在\Apache24\logs\error.lo
以上是flask怎麼結合apache的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Apache仍在被廣泛使用,但市場份額已從2010年的50%以上降至2023年的不到30%。它的優勢在於穩定性和可靠性,適合需要這些特性的企業級應用;劣勢是多進程模型在高並發下資源消耗大,Nginx在高並發處理上表現更佳。

ApacheWebServer的核心功能包括模塊化設計、虛擬主機配置、安全性設置和性能優化。 1)模塊化設計通過加載不同模塊實現靈活擴展,如mod_rewrite用於URL重寫。 2)虛擬主機配置允許在一台服務器上運行多個網站。 3)安全性設置提供SSL/TLS加密和訪問控制。 4)性能優化涉及啟用KeepAlive、調整MPM配置和啟用緩存。

Apache持續重要性的原因包括其多樣性、靈活性、強大的社區支持、在企業級應用中的廣泛使用和高可靠性,以及在新興技術領域的不斷創新。具體來說,1)Apache項目涵蓋了從Web服務器到大數據處理等多個領域,提供了豐富的解決方案;2)Apache軟件基金會(ASF)的全球性社區為項目提供了持續的支持和發展動力;3)Apache在金融、電信等企業級應用中表現出高穩定性和可擴展性;4)Apache在雲計算、大數據等新興技術領域持續創新,如ApacheFlink和ApacheArrow的突破。

Apache在當今技術生態中依然重要。 1)在Web服務和大數據處理領域,ApacheHTTPServer、Kafka和Hadoop仍是首選。 2)未來需關注云原生化、性能優化和生態系統簡化,以保持競爭力。

ApacheHTTPServer对WebHosting和内容分发有巨大影响。1)Apache始于1995年,迅速成为市场首选,提供模块化设计和灵活性。2)在Web托管中,Apache因稳定性和安全性被广泛使用,支持多操作系统。3)内容分发方面,结合CDN使用提高了网站速度和可靠性。4)通过性能优化配置,如内容压缩和缓存头,Apache显著提升网站性能。

Apache可以服務HTML、CSS、JavaScript等文件。 1)配置虛擬主機和文檔根目錄,2)接收、處理並返回請求,3)使用.htaccess文件實現URL重寫,4)通過檢查權限、查看日誌和測試配置來調試,5)啟用緩存、壓縮文件和調整KeepAlive設置來優化性能。

ApacheHTTPServer因其模塊化設計、高度可擴展性、安全性和性能優化成為Web服務器領域的領導者。 1.模塊化設計通過加載不同模塊支持各種協議和功能。 2.高度可擴展性適應從小型到大型應用的需求。 3.安全性通過mod_security和多種認證機制保護網站。 4.性能優化通過數據壓縮和緩存提升加載速度。

ApacheHTTPServer在現代Web環境中依然重要,因為其穩定性、可擴展性和豐富的生態系統。 1)穩定性和可靠性使其適用於高可用性環境。 2)廣泛的生態系統提供豐富的模塊和擴展。 3)易於配置和管理,即使初學者也能快速上手。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

禪工作室 13.0.1
強大的PHP整合開發環境

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3漢化版
中文版,非常好用

Atom編輯器mac版下載
最受歡迎的的開源編輯器