Nginx+Gunicorn来部署Flask

2020-09-10 17:53:22 APP开发
虚拟机的安装

  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的安装

模块依赖性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的方式比较好。

Gunicorn的安装:

代码上传以后:
生成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可以看到安装在哪里了。