Flask + Nginx + gunicorn部署
备注:此处部署是在ubuntu16.04下部署,python3.6.4,在虚拟环境中进行部署;这是Flask框架搭建的最简单的示例,运用了flask_script拓展,启动命令python manage.py runserver。
1. 安装nginx:
sudo apt-get install nginx
2. 进入项目目录中,安装gunicorn:
pip install gunciorn -i https://pypi.doubanio.com/simple/
3. 进入项目目录中,创建test.conf(nginx的配置文件):
server { listen 9988; server_name 192.168.4.129; # 服务器公网ip location / { # 设置文件大小,三条一起写 proxy_buffer_size 64k; proxy_buffers 32 32k; proxy_busy_buffers_size 128k; proxy_pass http://127.0.0.1:9092; #这个是Gunicorn与Ningx通信的端口,参数是proxy_pass,需要加上http:// access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; } }
4. 创建软连接,将test.conf配置文件链接到nginx目录下:
sudo ln -s /home/k8s-node1/pythonFiles/untitled/test.conf /etc/nginx/conf.d/ # 写绝对路径
5. 在项目中创建run.sh启动脚本:
export FLASK_APP=app #nohup gunicorn -b 127.0.0.1:9092 manage:app > /dev/null 2>&1 & # 后台运行 gunicorn -b 127.0.0.1:9092 manage:app #/home/k8s-node1/.pyenv/versions/env-3.6.4/bin/gunicorn -b 127.0.0.1:9092 manage:app # 开始不进入虚拟环境,直接找到python的虚拟环境目录运行 #nohup /home/k8s-node1/.pyenv/versions/env-3.6.4/bin/gunicorn -b 127.0.0.1:9092 manage:app > /dev/null 2>&1 & # 后台运行
6. 执行run.sh脚本启动项目:
在浏览器中输入:公网ip:端口/url 即可访问项目。