使用Apache+mod_wsgi部署flask网站

news/2024/5/17 10:52:01/文章来源:https://blog.csdn.net/qq_36962569/article/details/80885396

文章目录

      • 写在前面
      • ubuntu16.04
        • 1、配置
        • 2、二级域名设置
        • 3、github博客二级域名
        • 4、参考
      • centos7
        • 1、安装配置Apache
        • 2、安装配置mod_wsgi
        • 3、部署flask

写在前面

本文使用Apache+mod_wsgi部署简单的flask网站。

ubuntu16.04

设置二级域名访问flask网站。

1、配置

主要分为一下几个部分
app配置:/var/www/appapp.pyapp.wsgi
Apache virtualhost 配置:/etc/apache2/site-enabledapp.conf,同时在/etc/apache2/site-avaiableapp.conf

配置目录

- var/www- html # Apache默认Page- app # 创建application- app.py # applicaton- app.wsgi # 配置

app.py
flask app文件

from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():return "hello"
if __name__=="__main__":app.run()

app.wsgi
运行flask app前运行

import syssys.path.insert(0, "/var/www/app")
from app import app as application

注意:如果日志显示 No Module named flask;参考mod_wsgi (Apache)使用虚拟环境出现问题修改;最好在 app.conf中加入python-path,直接在app.wsgi 启动虚拟环境可能报错

app.conf
添加apache virtualhost

<virtualhost *:80>ServerName app.seesaw.topWSGIDaemonProcess app threads=5 python-path=/var/www/app/env/lib/python3.6/site-packagesWSGIScriptAlias / /var/www/app/app.wsgi<directory /var/www/app>WSGIProcessGroup appWSGIApplicationGroup %{GLOBAL}WSGIScriptReloading OnOrder deny,allowAllow from all</directory>ErrorLog ${APACHE_LOG_DIR}/app.error.logLogLevel warnCustomLog ${APACHE_LOG_DIR}/app.access.log combined
</virtualhost>

其中python-path需要填写虚拟环境位置,否则将无法加载模块
虚拟环境配置参考使用virtualenv搭建python3开发环境

2、二级域名设置

在这里插入图片描述

3、github博客二级域名

域名解析设置
在这里插入图片描述
github设置在这里插入图片描述
与在根目录下添加CNAME文件相同,其中CNAME文件中写入blog.seesaw.top

4、参考

flask+mod_wsgi+apache站点部署(Ubuntu16.04)
mod_wsgi (Apache)
Ubuntu Apache Server 部署 Flask 程序
使用virtualenv搭建python3开发环境

centos7

1、安装配置Apache

首先需要注意的是,Apache在centos上叫做httpd
安装Apache服务

yum install httpd

配置Apache服务

vi /etc/httpd/conf/httpd.conf

在#Listen 12.34.56.78:80下面模仿注释添加listen的IP地址或域名加上端口号
启动或关闭Apache服务
启动

systemctl start httpd.service

关闭

systemctl stop httpd.service

访问
访问服务器地址(配置中Listen的地址),默认显示Apache的测试页面。
/etc/httpd是httpd的根目录
/var/www/html下是放置请求页面的目录,直接把静态网页的index.html网页放在该目录下,访问服务器地址即可访问网站。

2、安装配置mod_wsgi

首先安装httpd-devel

yum install -y httpd-devel

安装mod__wsgi

yum install mod_wsgi

安装完成之后,mod_wsgi.so会在Apache的modules目录中
需要将mod_wsgi.so加载到httpd.conf

vi /etc/httpd/conf/httpd.conf

在最后添加

LoadModule wsgi_module modules/mod_wsgi.so

3、部署flask

上传
首先使用将flask项目包上传到 /var/www/html下
推荐使用WinSCP
这里写图片描述
配置app.wsgi
在/var/www/html/app下配置app.wsgi文件

vi /var/www/html/app/app.wsgi

文件中写入

import sys
sys.path.insert(0, '/var/www/html/app')
from app import app as application

配置wsgi.conf
在/etc/httpd/conf.d/下配置wsgi.conf
新建一个wsgi.conf文件

vi /etc/httpd/conf.d/wsgi.conf

在文件中输入

#配置虚拟环境地址
WSGIDaemonProcess app python-path=/var/www/app/lib/python3.6/site-packages
WSGIProcessGroup app
#路由是/app,通过访问服务器域名:端口/app直接访问项目
#/var/www/app.wsgi是配置文件,下面的/var/www/html/app是项目包,其中有app.py文件
WSGIScriptAlias /app /var/www/html/app/app.wsgi<Directory /var/www/html/app>Require all granted
</Directory>

其中需要注意,第一行使用了一个python虚拟环境,其中包含项目所需的所有包(包括flask),否则即使服务器上的python环境配置了flask环境,仍然无法使用,会报错找不到模块;这个问题时踩得最大的坑。

使用虚拟环境
下面介绍需要使用的虚拟环境,可以通过Pycharm获取,Pycharm每次创建项目,可以选择使用虚拟环境或本地环境。
也可以通过anaconda的conda来配置虚拟环境
创建python3.6虚拟环境,其中myenv是自己取得虚拟环境名

conda create -n myenv python=3.6

给虚拟环境安装包

conda install -n myenv package

创建的虚拟环境在anaconda3/env下面,可以复制到项目中,在上面改为相应的位置即可

访问
使用服务器地址:端口,仍然显示的是/var/www/html/下的index页面
使用服务器:端口/路由(如上面的是12.34.56.78:80/app),显示的是flask网站

日志
使用下面命令访问网站的错误日志

vi /var/log/httpd/error_log

使用域名
当然有域名的话,可以直接将域名解析到服务器地址,可以直接使用域名访问
解析参数配置如下
这里写图片描述
访问/var/www/html/index.html
这里写图片描述
访问/var/www/html/app下的flask项目
这里写图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_887169.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Django2.2+ubuntu16+python3.6架设“文学天地”个人网站

项目简介 项目是基于Django2.2ubuntu16(HuaWei cloud)python3.6开发的初学者博客网站项目网站上线使用Apache2 Web服务 &#xff08;后续更新&#xff09;此项目基本按照教材《Django架站的16堂课》所建&#xff0c;如需教材以及github源码链接可关注公众号【小灰啾】回复&quo…

国人当自强:两岸三地在线编程学习网站大搜罗

转载地址&#xff1a;http://www.csdn.net/article/2013-12-12/2817782-best-websites-to-learn-mobile-dev-in-china点击打开链接 摘要&#xff1a;在本文中&#xff0c;我们介绍了来自两岸三地的编程学习网站&#xff0c;通过它们&#xff0c;不仅可以一窥国内App开发的发展…

又是一个极佳的虚拟机网站

这次的虚拟机网站要比之前的pcjs还要好&#xff0c;因为这个网站更加稳定 看图&#xff1a; 不得不说&#xff0c;太像了 甚至连窗口都和真正的Windows98一模一样 打开记事本 还可以保存txt&#xff0c;步骤和Windows中的一样 绝了&#xff01; 安装方法&#xff1a; 浏览器…

14款优秀的代码展示网站

本文列出的这些网站可以分享和展示你的代码。它们都提供在线预览功能&#xff0c;所以别人可以看到你的代码如何运行。它们有时候也被称作“代码广场”或者“沙箱”。 它们不仅仅提供简单的代码展示功能&#xff0c;还提供很多代码协作和实际编程过程会用到的功能。例如&#x…

8款插件使你的网站移动响应

下面是一些有用的插件&#xff0c;另一个伟大的收集。这一次&#xff0c;我们的重点是前8插件&#xff0c;使你的网站移动响应。插件来这里是为了加快工作流程&#xff0c;简单的工作流程&#xff0c;从而提高了生产力。这些天来&#xff0c;这是你的敏感的网站必须工作在台式机…

5款最好的免费在线网站CSS验证器

这里是一个名单&#xff0c; 5免费在线CSS验证器的网站。这些网站让你验证你的CSS代码的自由&#xff0c;没有任何麻烦。你可以选择上传文件&#xff0c;验证CSS添加URL&#xff0c;或简单的复制和粘贴完整的CSS代码。好的方面是&#xff0c;这些网站不仅指出了代码中的错误&am…

10款WordPress的插件让你的网站的移动体验

随着科技的不断发展&#xff0c;需要改变营销策略的一个企业就变得非常重要。你不能指望用你的营销工具来留住你的客户。智能手机和平板电脑已经改变了消费者的行为方式。现在&#xff0c;人们甚至不想去他们的电脑或笔记本电脑&#xff0c;以检查产品或服务&#xff0c;他们的…

看看全球用户在线时间最多的20个网站是什么

一个用户在网站上停留时间(在线时间)的长短,反应出一个网站的粘度和吸引用户的能力,那么,人们最喜欢停留在哪些网站上呢?Jay Meattle给出了一组数据,显示了美国用户访问时间最长的20个网站,根据他的数据,这20个网站竟然拥有所有美国用户39%的访问时间,这些信息对于喜欢看英文内…

如何利用云服务器搭建个人网站

你是否想要搭建一个网站&#xff0c;却苦苦找不到方法&#xff0c;你是否看到别人搭建的网站&#xff0c;自己羡慕不已&#xff0c;今天&#xff0c;就教大家来搭建一个简单的个人网站。 在这里&#xff0c;我采用的是腾讯云服务器搭建的。首先&#xff0c;需要注册腾讯云账号…

网站被cc攻击应该怎么办?

随着数字化经济时代的发展&#xff0c;网络攻击已经屡见不鲜&#xff0c;而且屡禁不止&#xff0c;相比威力强大的ddos网络流量攻击&#xff0c;cc攻击的破环也不容忽视&#xff0c;今天来聊聊cc攻击。 在我们使用服务器搭建网站时&#xff0c;时常都会遇到各种攻击&#xff0c…

给自己的网站加上SSL安全认证

给自己的网站加上SSL安全认证 首先下载证书 文件解压缩之后得到一个后缀为pfx的证书文件 和 一个密码文本文件 将后缀为pfx的证书文件放在resources目录下 在application.yml文件中配置 server.port443是https的端口 #https配置 server.port443 server.ssl.key-storeclasspat…

13个免费网站测速服务

访问速度对于一个网站或博客来说实在太重要了&#xff0c;据有关部门的估计&#xff1a;一般一个浏览者如果在5-8秒钟没有打开一个网站&#xff0c;那么该网站会丢失1/3的浏览用户。超过10秒&#xff0c;你的访客绝对会失去耐心&#xff01;今天不讲如何改进访问速度的问题&…

在Gitee上部署自己的网站(网页)

前言&#xff1a; 你想给喜欢的女孩子惊喜吗哈哈&#xff01;&#xff01; 话不多说&#xff0c;开写&#xff1a; 第一步&#xff1a; 在我们的Gitee上创建仓库&#xff0c;在本地也创建项目&#xff0c;建立关联&#xff0c;创建一个index,html的文件在里面书写你想展示的内…

用C#创建和调用webservice实现不同网站间的消息传递(一)

这次我是在基础系统中&#xff0c;考试系统3.0、评教系统和选课都是直接连接我们基础系统的数据库&#xff0c;这次我们想优化数据库&#xff0c;可是无论我们改变什么&#xff0c;都得和他们好几个子系统交流&#xff0c;看看是否对他们有影响&#xff0c;很是麻烦&#xff0c…

用C#创建和调用webservice实现不同网站间的消息传递(二)

上篇讲了如何创建webservice&#xff0c;下面说说如何调用webservice。 1、添加web引用 右击“引用”&#xff0c;“添加服务引用” 2、点击“高级” 3、选择“添加web引用” 4、在URL里面输入提供的地址&#xff0c;然后点击旁边的“转到”标记&#xff0c;然后右边框中会显示…

从购买服务器到网站搭建成功保姆级教程~超详细

&#x1f60a;从购买服务器到网站搭建成功保姆级教程~真的超详细&#xff0c;各位看官细品 &#x1f680;前言&#x1f680;预备知识&#x1f6a2;什么是云服务器&#xff1f;&#x1f6a2;什么是域名&#xff1f;&#x1f6a2;什么是SSL证书&#xff1f; &#x1f680;服务器选…

网站开发基础知识

说到网页&#xff0c;其实大家并不陌生&#xff0c;毕竟我们在浏览的每一个页面&#xff0c;都可以称之为网页。那么&#xff0c;小伙伴们有没有想过网页究竟是什么&#xff1f;又是如何实现&#xff0c;从而出现在大家眼前的呢&#xff1f; 目录 一、认识网页 1、文字 2、…

【Spark实训】--竞赛网站访问日志分析

目录 一. 训练要点 二.需求说明 三.关键实现思路及步骤 四、LogCount.scala文件完整代码实现&#xff1a; 五、运行过程与结果截图&#xff1a; ​ 六、具体实现步骤 七、相关知识点 1、过滤出访问次数在 50 次以上的用户记录 2、统计访问 50 次以上的用户主要访问的前 5…

去哪儿旅游网站采集程序的设计与实现

相关课程与技术&#xff1a;《数据采集与网络爬虫技术》、requests、BeautifulSoup、pymongo等等。 这是我一年前的项目了&#xff0c;今天决定总结出来分享给大家&#xff01;一起学习啊。 目录 一、项目的目的与意义 二、采集目标确定 三、去哪儿旅游网站分析 四、数据采集…

基于CLI5+Vue2+Vue Router+Axios+mockjs+Vuex的品优购网站

目录 1 项目开发准备工作2 制作过程2.1创建项目2.2项目目录划分2.3项目初始化2.3.1引入CSS2.3.2给路径起别名2.3.3引入字体图标 2.4 引入Vue Router2.4.1安装以及简单使用2.4.2 配置路由映射2.4.3实现动态改变页面标题2.4.4配置路由懒加载 2.5 mock模拟数据接口axios2.5.1 mock…