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 93727721392c1ea09cff70e07d7af5ba
(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的人,我一开始看到参考链接中的配置017421ec4e1d87ae7f66fefe80084b1d不知道放在哪里,所以可以通过全文搜索,搜到了这句话,我可以确定将这个017421ec4e1d87ae7f66fefe80084b1d放在文件最底部。
将下面这段复制到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的错误输出日志。错误输出日志在11b747e0ef5c3ed0267e8a766027555d\Apache24\logs\error.lo
以上是flask怎么结合apache的详细内容。更多信息请关注PHP中文网其他相关文章!

Apache是一种开源Web服务器软件,广泛用于网站托管。安装步骤:1.在Ubuntu上使用命令行安装;2.配置文件位于/etc/apache2/apache2.conf或/etc/httpd/conf/httpd.conf。通过模块扩展,Apache支持静态和动态内容托管,优化性能和安全性。

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.性能优化通过数据压缩和缓存提升加载速度。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 Linux新版
SublimeText3 Linux最新版

记事本++7.3.1
好用且免费的代码编辑器

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中