阿里云部署flask_极简

阿里云部署flask

最近做了个小项目,然后把flask部署到阿里云服务器上
在本地运行flask程序时,只需在浏览器输入

127.0.0.1:5000/

一开始以为在服务器上也一样,运行flask程序,然后直接在浏览器输入IP就行
可惜不是这样,网上也有很多教程,这里写一下一个小白的学习过程

概要

使用 flask+gunicorn+nginx 将web部署到服务器

将flask部署到服务器需要两样东西
1. web服务器
用于响应http请求,例如nginx, apache
使用web服务器做一个本地代理,当有http请求时,通过代理转到本地的5000端口
2. wsgi容器
保证web服务器(nignx)和web框架(flask)之间的相关通信,例如uwsgi, gunicorn

第一步 安装环境

1.在服务器上安装python环境及flask和gunicorn

pip install flask
pip install gunicorn

2.在一个文件夹内写了个入门程序 app.py

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

Hello World

"

3.测试下gunicorn
在该文件夹内

gunicorn -w 4 -b 127.0.0.1:5000 app:app

如果没有报错,说明运行正常 (然后可以ctrl c)
其中

  • -w 4 表示4个进程
  • -b 127.0.0.1:5000 表示flask使用5000端口
  • app:app 第一个app表示程序文件名,第二个app表示实例化对象app=Flask(name)

第二步 安装nginx

1.阿里云使用centos, 直接下载

sudo yum install nginx

2.修改配置文件

vim /etc/nginx/conf.d/default.conf

最简单的配置文件

server {
	listen	80;
	server_name #IP地址;
	location / {
	proxy_pass http://127.0.0.1:5000
	}
}

3.重启

service nginx restart
nginx -s reload

第三步 打开端口

1.打开iptables
安装

yum install iptables-services  

然后直接修改配置文件

vim /etc/sysconfig/iptables  

加入一句话

-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

可以使用iptables -L -n查看端口情况

重启iptables

systemctl restart iptables  

然后可以再 iptable -L -n 查看下

2.打开firewall
直接

firewall-cmd  --add-port=80/tcp --permanent  

其中,–permanent为永久,如果没有的话,重启后开放的端口就失效了
重启

systemctl restart firewalld  

可以查看情况,是否出现port 80

firewall-cmd --list-all

3.控制台
在云服务器管理控制台添加安全规则
好难找。。。

阿里云部署flask_极简_第1张图片
阿里云部署flask_极简_第2张图片
阿里云部署flask_极简_第3张图片

然后就可以了

运行

只需在程序文件夹内

	gunicorn -w 4 -b 127.0.0.1:5000 app:app

然后在浏览器输入 http://ip:80 就行了

阿里云部署flask_极简_第4张图片

你可能感兴趣的:(阿里云部署flask_极简)