首页 运维 Apache flask怎么结合apache

flask怎么结合apache

Oct 29, 2019 am 11:17 AM
apache

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)上面这条命令成功运行后,我们可以得到三条信息:

apache-18.png(4)然后使用这三条信息代替.so文件,加入到apache的配置文件中:

apache-19.png6、配置站点(重点):

# <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项目的配置:

项目目录:

apache-20.png

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

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PHP 框架性能比较:速度与效率的终极对决 PHP 框架性能比较:速度与效率的终极对决 Apr 30, 2024 pm 12:27 PM

根据基准测试,Laravel在页面加载速度和数据库查询方面表现出色,而CodeIgniter在数据处理方面表现优异。选择PHP框架时,应考虑应用程序规模、流量模式和开发团队技能。

golang函数并发控制与第三方库的整合与扩展 golang函数并发控制与第三方库的整合与扩展 Apr 25, 2024 am 09:27 AM

Go中通过Goroutine和并发控制工具(如WaitGroup、Mutex)实现并发编程,可使用第三方库(如sync.Pool、sync.semaphore、queue)扩展其功能。这些库可优化并发操作,如任务管理、资源访问限制和代码效率提升。一个使用队列库处理任务的示例展示了第三方库在实际并发场景中的应用。

Java 并发编程中如何进行并发测试和调试? Java 并发编程中如何进行并发测试和调试? May 09, 2024 am 09:33 AM

并发测试和调试Java并发编程中的并发测试和调试至关重要,以下技术可供使用:并发测试:单元测试:隔离并测试单个并发任务。集成测试:测试多个并发任务之间的交互。负载测试:评估应用程序在高负载下的性能和可扩展性。并发调试:断点:暂停线程执行并检查变量或执行代码。日志记录:记录线程事件和状态。堆栈跟踪:识别异常源头。可视化工具:监视线程活动和资源使用情况。

evasive 模块保护您的网站免受应用层 DOS 攻击 evasive 模块保护您的网站免受应用层 DOS 攻击 Apr 30, 2024 pm 05:34 PM

有多种可以导致网站下线的攻击方法,比较复杂的方法要涉及数据库和编程方面的技术知识。一个更简单的方法被称为“拒绝服务DenialOfService”(DOS)攻击。这个攻击方法的名字来源于它的意图:使普通客户或网站访问者的正常服务请求被拒绝。一般来说,有两种形式的DOS攻击:OSI模型的三、四层,即网络层攻击OSI模型的七层,即应用层攻击第一种类型的DOS攻击——网络层,发生于当大量的垃圾流量流向网页服务器时。当垃圾流量超过网络的处理能力时,网站就会宕机。第二种类型的DOS攻击是在应用层,是利用合

eclipse如何添加服务器 eclipse如何添加服务器 May 05, 2024 pm 07:27 PM

要将服务器添加到 Eclipse,请执行以下步骤:创建服务器运行时环境配置服务器创建服务器实例选择服务器运行时环境配置服务器实例启动服务器部署项目

算法在 58 画像平台建设中的应用 算法在 58 画像平台建设中的应用 May 09, 2024 am 09:01 AM

一、58画像平台建设背景首先和大家分享下58画像平台的建设背景。1.传统的画像平台传统的思路已经不够,建设用户画像平台依赖数据仓库建模能力,整合多业务线数据,构建准确的用户画像;还需要数据挖掘,理解用户行为、兴趣和需求,提供算法侧的能力;最后,还需要具备数据平台能力,高效存储、查询和共享用户画像数据,提供画像服务。业务自建画像平台和中台类型画像平台主要区别在于,业务自建画像平台服务单条业务线,按需定制;中台平台服务多条业务线,建模复杂,提供更为通用的能力。2.58中台画像建设的背景58的用户画像

如何使用 PHP 部署和维护网站 如何使用 PHP 部署和维护网站 May 03, 2024 am 08:54 AM

要成功部署和维护PHP网站,需要执行以下步骤:选择Web服务器(如Apache或Nginx)安装PHP创建数据库并连接PHP上传代码到服务器设置域名和DNS监控网站维护步骤包括更新PHP和Web服务器、备份网站、监控错误日志和更新内容。

Java 函数包管理和依赖关系与版本控制的集成 Java 函数包管理和依赖关系与版本控制的集成 Apr 24, 2024 pm 09:48 PM

在Java中,函数包管理和版本控制集成至关重要,使用Maven管理依赖关系,使用Git进行版本控制。集成步骤包括初始化Git仓库、创建Maven函数包信息文件、将其添加到Git仓库中。实战案例中,添加CommonsLang依赖关系,使用Maven下载并将其添加到Git仓库中,以确保团队使用相同的依赖关系版本。

See all articles