Nginx+Gunicorn来部署Flask
pip3 install virtualenv
创建一个干净的隔离环境, 以python3为复制本体, 虚拟环境名为virhaha
virtualenv --no-site-packages --python=python3 virhaha
解释:--no-site-packages 创建一个干净隔离的python虚拟环境
--python=python 指定解释器
如果使用默认的话:virtualenv virhaha 就创建了一个名为virhaha的虚拟环境。
.进退的虚拟环境的两个指令:
source /xxx/virhaha/bin/activate 进入虚拟环境, 路径为创建虚拟环境时的路径,source 是进入到某个虚拟环境。后面找到虚拟环境的路径就行。一般来说virtualenv virhaha这个命令在哪个目录文件下输入的,创建的虚拟环境文件就在哪个目录。
deactivate 退出当前虚拟环境
模块依赖性Nginx需要依赖下面3个包
ssl功能需要 openssl 库
gzip模块需要 zlib 库 )
rewrite模块需要
可以先去官网下载http://nginx.org/download,下载后上传服务器,然后要在服务器解压,不能解压后再上传服务器(原因我也不清楚,可能是解压的时候在windows,解压出来的文件的权限不对,提示是这样的)。在服务器解压后cd到解压后的文件里,输入:./configure,然后是make,然后是make install
[root@localhost zlib-1.2.7]# ./configure --prefix=/usr/install/nginx --with-pcre=../pcre-8.21 --with-zlib=../zlib-1.2.7 --with-openssl=../openssl-fips-2.0.2
[root@localhost zlib-1.2.7]# make
[root@localhost zlib-1.2.7]# make install
注意:./configure后面那一堆是要的,是制定了安装在哪里,还有就是开启https的openssl模块。这个肯定是需要的。不然安装好了,还得重来,当然也有弥补办法。
也可以这样不要制定模块的版本。我觉得这样比较不容易错,他会默认去找安装的版本的。
./configure --prefix=/usr/local/nginx --with-http_ssl_module
安装换成以后,输入ip地址就能看到nginx的欢迎页面了。至于nginx的配置这里就不多讲了;在http模块里
include mime.types;的后面加一句:
include /usr/local/nginx/conf/confd/*.conf;
然后在对应的文件夹里,没有就建一个,然后每个网站建一个conf的方式比较好。
代码上传以后:
生成requirements.txt文件
pip freeze > requirements.txt
安装requirements.txt依赖
pip install -r requirements.txt
pip install gunicorn
# 第一个app指的是app.py文件,第二个指的是flask应用的名字;
gunicorn -w 4 -b 0.0.0.0:8000 app:app
也可以用gunicorn -w 4 -c guni.py app:app的方式启动,配置文件为py文件,放到跟app.py文件一个目录。
输入whereis gunicorn可以看到安装在哪里了。