OK, 此时已经正常启动 uwsgi 并将 Flask 项目载入其中了,ctrl+c 关闭程序。但这只是命令启动形式,要使其随同服务器启动并作为后台服务运行才是运营环境的实际所需要。因此接下来我们需要安装另一个工具来引导 uwsgi 。
安装 Supervisor[Supervisor|]可以同时启动多个应用,最重要的是,当某个应用Crash的时候,他可以自动重启该应用,保证可用性。
sudo apt-get install supervisorSupervisor 的全局的配置文件位置在:
/etc/supervisor/supervisor.conf正常情况下我们并不需要去对其作出任何的改动,只需要添加一个新的 *.conf 文件放在
/etc/supervisor/conf.d/下就可以,那么我们就新建立一个用于启动 my_flask 项目的 uwsgi 的 supervisor 配置 (命名为:my_flask_supervisor.conf):
[program:my_flask] # 启动命令入口 command=/home/www/my_flask/venv/bin/uwsgi /home/www/my_flask/config.ini # 命令程序所在目录 directory=/home/www/my_flask #运行命令的用户名 user=root autostart=true autorestart=true #日志地址 stdout_logfile=/home/www/my_flask/logs/uwsgi_supervisor.log 启动服务 sudo service supervisor start 终止服务 sudo service supervisor stop 安装 Nginx[Nginx|]是轻量级、性能强、占用资源少,能很好的处理高并发的反向代理软件。
sudo apt-get install nginx 配置 NginxUbuntu 上配置 Nginx 也是很简单,不要去改动默认的 nginx.conf 只需要将
/ext/nginx/sites-available/default文件替换掉就可以了。
新建一个 default 文件:
server { listen 80; server_name XXX.XXX.XXX; #公网地址 location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8001; # 指向uwsgi 所应用的内部地址,所有请求将转发给uwsgi 处理 uwsgi_param UWSGI_PYHOME /home/www/my_flask/venv; # 指向虚拟环境目录 uwsgi_param UWSGI_CHDIR /home/www/my_flask; # 指向网站根目录 uwsgi_param UWSGI_SCRIPT manage:app; # 指定启动程序 } }将default配置文件替换掉就大功告成了!
还有,更改配置还需要记得重启一下nginx:
阿里云的服务器运行速度很不错,加上Flask+uWSGI+nginx 这种高性能结构,整个网站响应速度极为之快,每页响应速度不到0.1s , 与之相比我之前使用 C# 部署在Avarix 上的网站(同一个程序,不同语言实现)每页响应速度至少2s 这简直是 200:1的性能,当然我还没有闲到去专们用软件去测这两者之间的差值,写本文的目的也是对此作一记录,以便以后回顾。
Ubuntu Server 14.04.2 LTS 配置 Nginx + Uwsgi + Django