在本地使用Ubuntu安装Nginx+uWSGI+Flask安装成功后,想在VPS上进行部署,但VPS上的Debian9安装过程中遇到了一些问题,索性就再描述一下Debian9上边安装Flask的步骤。我的vps上使用用户名clockfrog
安装了一个anaconda
的环境,因此需要在该环境下进行使用。这里先假定所需要的nginx
,virtualenv
,virtualenvwrapper
都已经准备好了,只描述一些与Ubuntu上的安装不同的关键步骤:
Flask安装配置
- 在当前环境的
~/.bashrc
中的最后有如下两行:export PATH="/home/clockfrog/anaconda3/bin:$PATH" source /home/clockfrog/anaconda3/bin/virtualenvwrapper.sh
- 创建虚拟环境:
mkvirtualenv dataminging
- 虚拟环境中安装Flask:
pip install Flask
- 创建文件
~/dataminging/dataminging.py
并写入如下内容:from flask import Flask application = Flask(__name__) @application.route("/") def index(): return "Hello World!\r\n" if __name__ == "__main__": application.run()
uWSGI安装配置
- 虚拟环境中安装uWSGI:
pip install uwsgi
- 创建配置文件
/etc/uwsgi/sites/datamining.ini
并写入如下内容:[uwsgi] uid = clockfrog gid = www-data logto = /var/log/uwsgi.log pidfile = /var/run/uwsgi.pid project = datamining base = /home/clockfrog chdir = %(base)/%(project) home = %(base)/.virtualenvs/%(project) module = %(project):application master = true processes = 8 cheaper = 2 cheaper-initial = 4 cheaper-step = 1 cheaper-algo = spare cheaper-overload = 4 socket = %(base)/%(project)/%(project).sock chmod-socket = 664 vacuum = true
systemd管理uWSGI
- 创建systemd管理配置文件
/lib/systemd/system/uwsgi.service
,内容如下:[Unit] Description=uWSGI Emperor After=syslog.target [Service] ExecStart=/home/clockfrog/.virtualenvs/datamining/bin/uwsgi --ini /etc/uwsgi/sites/datamining.ini RuntimeDirectory=uwsgi Restart=always KillSignal=SIGQUIT Type=notify StandardError=syslog NotifyAccess=all [Install] WantedBy=multi-user.target
- systemd管理相关命令如下:
- 启用systemd对uwsgi的管理:
systemctl --user enable uwsgi
- 修改
/lib/systemd/system/uwsgi.service
后需要重新加载:systemctl daemon-reload
- 启动应用:
systemctl start uwsgi
- 关闭应用:
systemctl stop uwsgi
- 启用systemd对uwsgi的管理:
Nginx安装配置
- 编辑配置文件
/etc/nginx/nginx.conf
,在http
块中,注释掉如下行:include /etc/nginx/conf.d/*.conf;
- 创建文件
/etc/nginx/sites-available/datamining
,内容如下:server { listen 80; location / { include uwsgi_params; uwsgi_pass unix:/home/clockfrog/datamining/datamining.sock; } }
- 使用如下命令启用
firstflask
的配置:
这里务必记得删除目录sudo ln -s /etc/nginx/sites-available/datamining /etc/nginx/sites-enabled/
/etc/nginx/sites-enabled/
下的default文件。 - 进行配置检查并重启服务:
sudo service nginx configtest sudo service nginx restart
安装完成测试
- 访问如下链接可以出现
Hello World!
即可:http://localhost
网友评论