【Centos】【Python】【Flask】阿里云上部署一个 flask 项目
1、 安装 python3 和 pip3
参考:http://www.cnblogs.com/mqxs/p/8692870.html
2、安装 lnmpa 集成开发环境
参考:http://www.cnblogs.com/mqxs/p/8706353.html
3、gunicorn安装
参考资料: gunicorn
pip install gunicorn
4、flask 安装
参考资料: flask
pip install flask
pip install virtualenv
5、virtualenv 使用
参考资料: virtualenv
$ mkdir myproject
$ cd myproject
$ virtualenv venv
$ . venv/bin/activate
6、从仓库下载 flask 工程文件
1.git 操作, 当然也可以直接用filezila 将工程传递上去
注意这里需要同时安装 工程相关的依赖插件 flask-login 之类的
2.需要特别注意的是, 使用 pip install xxx
和 sudo pip install xxx
的效果是不一样的, 由于我们最终使用sudo运行, 因此, 这里所有依赖的插件都应该使用 sudo pip
进行安装, 否则运行错误
7、运行工程项目
helloworld.py
from flask import Flask app = Flask(__name__) @app.route('/')
def hello_world():
return 'Hello World!' if __name__ == '__main__':
app.run()
gunicorn -w -b 127.0.0.1: helloworld:app
1.这里使用gunicorn 启动工程
2.这里说明一下:
- D 表示后台运行 (PS.我试了加了-D就启动失败了,原因未知)
- w 表示有3 个 工作线程(感觉有些类似 nginx 的 master-worker 模型)
- b 指定ip 和端口
- 这里采用本机访问, 主要是为了使用nginx 进行代理, 方便管理
- application 表存放 写着全局变量 app 的那个工程文件
- 在我们的这个工程中, 即包含 init.py 的那个文件
- app 为全局变量 (app = Flask(__name__)
)
- ps: 在下面图示文件夹中运行 gunicorn 指令
到达这一步,你可以在本机的浏览器上访问127.0.0.1:8000,浏览器上就会出现Hello World!
注意:如果是想通过外网访问的话就要把ip改为内网的ip,外网直接用外网ip登陆即可。
还有一点要注意的,如果外网无法连接(当时一直以为部署失败了),需要去阿里云那边修改安全组配置,修改配置规则,将自己的端口加入,才可以外网访问。
如下图:
3.参考资料: Docs » Running Gunicorn
8、 配置nginx 服务器脚本
1.安装完的nginx 在 /usr/local/nginx
目录下, 我们可以找到conf
文件夹下的 nginx.conf
文件, 将其修改
2.添加nginx 需要监听的端口信息
server {
listen ;
server_name instagram.zhyh2010.com;
location /{
proxy_pass http://127.0.0.1:8000;
}
}
实际上, 我们将外部通过 8001 端口发送过来的请求, 代理给了 127.0.0.1:8000
也就是我们的 flask 项目
记得完成 nginx 需要重新起动 nginx 服务喔!
sudo service nginx restart
9、防火墙设置
1. 参考资料:
解决 RHEL 7/ CentOS 7/Fedora 出现Unit iptables.service failed to load
linux 中防火墙配置 iptables 命令参数的含义介绍
2.防火墙设置信息
1.可以看到 我们的8000, 8001 端口都是开放的, 但是 8000 端口上没有程序监听 (我们的程序只监听本机的 8000 端口)
而 8001 端口是通过 nginx 监听的。
2.端口监听信息
参考原文:https://blog.csdn.net/zhyh1435589631/article/details/51946439
【Centos】【Python】【Flask】阿里云上部署一个 flask 项目的更多相关文章
- 阿里云上部署了zabbix,突然无法收到报警邮件的解决办法
在阿里云上部署了zabbix,一直能正常接收到zbx发来的报警邮件(报警邮箱是163的),不知是什么原因,突然无法接收到报警邮件了. 但在服务器上手动执行echo "hello"| ...
- 在腾讯云&阿里云上部署JavaWeb项目(Tomcat+MySQL)
之前做项目都是在本地跑,最近遇到需要在在云服务器(阿里云或者腾讯云都可以,差不多)上部署Java Web项目的问题,一路上遇到了好多坑,在成功部署上去之后写一下部署的步骤与过程,一是帮助自己总结记忆, ...
- 如何在阿里云上部署war包到tomcat服务器
一. 准备工作:xshell和xftp 首先我们得确保,xshell能够远程连接阿里云ECS,xftp能够保证windows和linux之间的文件传输(当然也可以选择FileZilla,但xftp感觉 ...
- 阿里云服务器部署Java Web项目全过程
最近需要将一个Java Web项目部署到服务器上,方便多人共享访问.这也是我第一次接触服务器之类的东西,也花了一点时间,最终总算部署成功,写下一篇文章记录以便日后回顾. 购买服务器 第一步当然是需要购 ...
- Django+nginx+gunicore+supervisor+阿里云主机 部署博客项目
1 准备阶段 1 新鲜的阿里云主机 2 购买一个喜欢的域名 3 创建python的虚拟环境 2 阿里云主机的选取 咱们就是为了实验,我买了最便宜的阿里云主机 3 阿里云主机创建一个超级用户 3.1 默 ...
- linux系统上部署一个web项目
对于apache开源项目中tomcat的认识,大多停留在Windows下,这次我通过一个简单的实例来介绍一下在linux下如何搭建tomcat环境,并且部署一个web项目. 先从基本安装开始,可别小看 ...
- [傻瓜式一步到位] 阿里云服务器Centos上部署一个Flask项目
网络上关于flask部署Centos的教程有挺多,不过也很杂乱. 在我第一次将flask上传到centos服务器中遇到了不少问题,也费了挺大的劲. 在参考了一些教程,并综合了几个教程之后才将flask ...
- 在阿里云上部署 Postfix
Postfix 可以很方便的在一台机器上部署 smtp 服务,在 centos 上来说的话可以使用: sudo yum install postfix sudo systemctl enable po ...
- 阿里云上部署kafka--遇到的坑
阿里云防火墙关闭,并且配置规则.不然会导致访问不到服务. 问题一: Caused by: java.net.UnknownHostException: iZuf68tztea6l5ccdz7wemZ: ...
随机推荐
- ssr.js数据模拟工具
ssr相当于是搭建了一个 Mock Server ,构建假数据,然后把这些假数据存到 JSON 文件上,Mock Server 可以响应请求或者生成页面,当然也可以顺便生成 API 文档. 强制跨域访 ...
- 【ARM】2410裸机系列-中断处理
目的 为了更好地掌握S3C2410中断的原理及中断程序的编写. 内容利用S3C2410的外部中断0和外部中断1实现两个按键功能 原理 本次选择的是外部中断EXTINT0和EXTINT11.中断的产生分 ...
- NSLOOKUP命令的使用方法
查询IP地址 nslookup最简单的用法是查询域名对应的IP地址,包括A记录.MX记录.NS记录CNAME记录. 查询A记录:nslookup 域名 查询MX记录:nslookup -q=mx 域名 ...
- Python(四)之Python流程控制(if、while、for)
Python流程控制 if测试: if 条件测试表达式: 组合条件测试: x and y:与运算 x or y:或运算 not x:非运算 while: break:跳出最内层的循环 continue ...
- Scapy:局域网MAC地址扫描脚本
转载自:http://blog.sina.com.cn/s/blog_4b5039210100gn6k.html 未测试,回头研究研究. 用python+scapy写的,只要双击.py文件即可,扫描当 ...
- laravel中facade serviceprovider的理解
一个serviceprovider就是一个解决某个功能的公用模块,实际上可以直接用在di里注册然后从di中取出,为啥还要搞个facade呢? 有几个方面的原因 1.把实例化移入到serviceprov ...
- 词袋模型bow和词向量模型word2vec
在自然语言处理和文本分析的问题中,词袋(Bag of Words, BOW)和词向量(Word Embedding)是两种最常用的模型.更准确地说,词向量只能表征单个词,如果要表示文本,需要做一些额外 ...
- cas单点登录-CAS5.1.3 overlay服务器搭建(二)
前言 本节主要讲解怎么搭建cas服务端,并且在浏览器中使用https访问cas服务端 1.通过cas代码生成工具(https://casinitializr.herokuapp.com/),生成 ...
- Java 1.7 ThreadPoolExecutor源代码解析
相比1.6,1.7有些变化: 1. 添加了一个TIDYING状态.这个状态是介于STOP和TERMINATED之间的.假设运行完terminated钩子函数后状态就变成TERMINATE ...
- 了解PHP中$_SERVER变量对路径的解析
1,$_SERVER["QUERY_STRING"]说明:查询(query)的字符串 2,$_SERVER["REQUEST_URI"]说明:访问此页面所需的U ...