在Centos上部署flask服务器
一、安装python3.6.5
1.在阿里云申请服务器,起初测试使用30天使用的服务器。
2.在服务器上安装python3,让其能够适应当下大多数程序需要的python3环境,其中的yum以及python,pip等命令需要通过软连接来重新定义,以便区分安装好的python3和系统自带的python2.
教程网上可以说是五花八门,我选择了一个相对简洁明了的博客来实现安装。
blog.csdn.net/t8116189520/article/details/81976755
二、安装虚拟环境
1.虚拟环境的使用是为了防止服务器上项目过多导致环境混乱,即有可能会出现python2与python3之间的冲突或者项目使用的框架不一致,所以虚拟环境是有必要的。
2.具体的安装网上教程也是大把大把,我也选了一个相对简洁易懂的
www.cnblogs.com/shangchunhong/p/9790147.html
其中有一个使用的就是,python项目所用到的依赖包文件生成安装,其命令分别是
pip freeze >requirements.txt #生成
pip install -r requirements.txt #安装
#打开虚拟环境venv_name
workon venv_name
三、配置flask项目
在网上大多数的人都会使用Nginx 或者其他的http服务器,其实python的强大就在于他有许多完善的库可以供你使用,所以完全可以通过pip install 来实现基础测试的项目,一开始安装呢么多东西原理也理解不过来,所以我直接使用的WSGIServer来实现服务器的处理。
其实一开始对于网页可以这么理解
1.你点击一个链接或者输入一个网址,其实就是通过http请求到了服务器。
2.服务器在运行时会一直监听web项目开启的那个地址和端口,一监听到请求通过处理之后就会执行相关代码。
3.如果没有权限控制,那么只要请求的地址正确,服务器就会返回这个请求生成一个http文档。
4.浏览器接收到http文档(html文档形式),将其显示成网页。
这里拿百度百科上的介绍来解释WSGI
PythonWeb服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是Python应用程序或框架和Web服务器之间的一种接口,已经被广泛接受, 它已基本达成它的可移植性方面的目标。
WSGI 没有官方的实现, 因为WSGI更像一个协议. 只要遵照这些协议,WSGI应用(Application)都可以在任何服务器(Server)上运行, 反之亦然。
所以,最简单的flask项目代码可以写为
from flask import Flask
from gevent import monkey
monkey.patch_all()
from gevent.pywsgi import WSGIServer
app = Flask(__name__)
if __name__ == '__main__':
# app.run(host='0.0.0.0',port=8081,debug=True)
server = WSGIServer(('x.x.x.x',80), app)
server.serve_forever()
#在CentOS主机上查看当前主机在监听哪些端口的命令是netstat,常用的命令是:
netstat -tlunp
其中的"x.x.x.x"填为服务器内网ip,端口号可以自己设置,如果80占用了的话可以自定义其他端口。
这里还要提一个阿里云的服务器问题,他的安全组规则很严格,让其他客户端通过公网访问的端口都需要添加规则,贴一张图片解释一下。
这里的x.x.x.x是电脑外网登录的IP地址,不是主机的IP地址(即用ipconfig查找出来的是没有用的),需要直接百度本机ip就可以了,或者去这个网址http://www.ip138.com/。