Flask + Nginx + uWSGI部署
备注:如果需要在虚拟环境中部署的话,首先需要创建虚拟环境,然后进入虚拟环境进行部署。此处环境是进入虚拟环境中进行部署;这是Flask框架搭建的最简单的示例,运用了flask_script拓展,启动命令python manage.py runserver。
环境:
1. 操作系统:ubuntu16.04
2. 部署框架:Nginx + uWSGI
3. python环境:python3.6.4
需要安装:
1. # 安装nginx sudo apt-get install nginx
2. # 最好在虚拟环境中安装uwsgi
pip install uwsgi -i https://pypi.doubanio.com/simple/
3. # 安装项目所有依赖包
pip install -r requirements.txt -i https://pypi.doubanio.com/simple/
开始部署:
1. 将自己的项目放在服务器上;
2. 进入项目中,创建test_nginx.conf和test.ini文件(一个是nginx的配置文件,一个是uwsgi的配置文件)
3. 编辑test_nginx.conf文件;
server { listen 9900; server_name 192.168.4.129; # 服务器公网ip location / { # 文件允许大小,三条一起写 proxy_buffer_size 64k; proxy_buffers 32 32k; proxy_busy_buffers_size 128k; include uwsgi_params; # 注:必须写,uwsgi别写成wsgi uwsgi_pass 127.0.0.1:7799; # 注:参数是uwsgi_pass,socket通信地址不加http:// access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; } }
4. 添加软连接,将项目中的test_nginx.conf连接到nginx指定的目录中(注:写绝对路径);
sudo ln -s /home/k8s-node1/pythonFiles/untitled/test_nginx.conf /etc/nginx/conf.d/
5. 编辑test.ini的uwsgi配置文件:
[uwsgi] # 不能忘记写 master = true home = /home/k8s-node1/.pyenv/versions/env-3.6.4 # 虚拟环境地址 chdir = /home/k8s-node1/pythonFiles/untitled # 项目目录 wsgi-file = manage.py # 项目启动文件 callable = app # 项目可执行对象 socket = 127.0.0.1:7799 # 与nginx进行socket通信的地址,必须一样 processes = 4 threads = 2 buffer-size = 32768 stats = 127.0.0.1:9091
6. 重新启动nginx:
sudo /etc/init.d/nginx restart
7. 在项目中启动test.ini文件:
uwsgi --ini test.ini & # & 后台运行
备注:
1. # 杀死uwsgi全部进程 pkill -f uwsgi -9
2. # 基本的启动结果
3. 在浏览器中通过公网ip:端口/url 访问项目即可~~~
https://www.mephisto.site/2018/07/Flask-+-UWSGI-+-Nginx%E9%83%A8%E7%BD%B2/