主要参考了这篇文章 How To Serve Flask Applications with uWSGI and Nginx on Ubuntu 14.04
安装nginx + uwsgi + flask
|
|
启动virtualenv, 以下操作都在virtualenv中进行
|
|
下载flask应用代码
git clone your_flask_git_repo
在repo下新建wsgi.py
, 内容如下:
|
|
注: 把app换成application否则可能会出错
在repo下新建uWSGI配置文件visualization.ini
(文件名任意), 内容如下:
|
|
注: 关键是socket, 这是和nginx沟通的unix端口
配置nginx
sudo vim /etc/nginx/sites-available/myproject
|
|
注:
server_domain_or_IP
需要填写服务器ipunix:/home/user/myproject/myproject.sock;
段需要填写之前visualization.ini
中的sock文件绝对地址
启动nginx服务器
- 先建立软链接:
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled
- 检查conf文件的正确性:
sudo nginx -t
- 启动:
sudo service nginx restart
- 此时访问服务器的80端口会看到502错误, 因为uWSGI还没启动
启动uWSGI服务
|
|
- 在后台运行, 会将log输出到规定的文件
- 再刷新一下地址就可以看到结果了
一些坑
- falsk中的APScheduler貌似不好用, 最后自己使用丑陋的方法写了个独立的py文件处理生成的json, 再用crontab定时运行
- 每次重启服务器没法启动uWSGI, 参考文章的配置文件似乎因为权限问题没有启动
待续