Ubuntu部署python3-flask-nginx-uwsgi-supervisor完美
2017-12-28 14:24
676 查看
http://blog.51cto.com/jokerbug by:joker_bug
配置好后可以运行起来测试是否成功
修改nginx配置/etc/nginx/nginx.conf ,第一行user www www ; Nginx用户及组:用户 组 按自己需求配置。详细配置参数网上自己找
配置好后就运行
欢迎交流
安装虚拟环境
$ pip install virtualenv $ pip install virtualenvwrapper
把虚拟机环境添加环境变量中
这个最好find / -name virtualenvwrapper.sh 看下位置$ vi .bashrc if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then export WORKON_HOME=$HOME/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh fi
为flask项目创建一个虚拟环境
$ mkvirtualenv --python=python3 flask #flask这个名字可以按自己需求修改,我项目是需要python3。所以选择 --python=python3,如果需要python2可以不加这个。 $ deactivate #安装完虚拟环境后,先退出这个虚拟环境。
安装mysql数据库,安装数据这个没什么好提的网上有很多详细教程
$ apt install mysql-server mysql-client $ apt install libmysqld-dev
安装nginx
$ apt install nginx #这个安装也比较简单
安装supervisor
需要是python2 暂时不支持python3,这里有时候会遇到坑。pip install --upgrade pip 看看现在pip是什么版本。
$ vi /usr/local/bin/pip #如果发现pip是python3,不要慌用这个命令把第一行的python3修改python2 即可,如果是python2就无视这步 $ pip install supervisor #安装supervisor
安装uwsgi
需要注意flask项目需要的环境 选择python3 还是python2.
这个我的项目是python3,如果是python2创建虚拟环境就用python2。具体可以看上面的为项目创建虚拟环境
$ workon flask #进入虚拟环境 $ pip install uwsgi #这个之前装到虚拟环境里面
如果出现Failed building wheel for uwsgi执行下面语句
apt-get install python3-dev
项目文件创建
这个按自己需要创建,也可以按我这个创建
$ mkdir /www #根目录下创建一个www $ mkdir /www/wwwroot #这个项目文件全部放这个理 $ mkdir /www/log #日志文件
uwsgi配置
uwsgi配置好后,可以测试下
uwsgi配置路径:/www/wwwroot/uwsgi.ini$ cd /www/wwwroot #可以放到项目,按自己需求都可以 $ vi uwsgi.ini #创建一个uwsgi配置文件 [uwsgi] # 当前这个项目的路径 chdir = /www/wwwroot # 模块 module = manage #启动文件名 个人理解 # python的虚拟环境 home = /root/.virtualenvs/python3 # 是否启用mater模式 master = true # 进程数 processes = 2 # socket文件地址 socket = /www/wwwroot/uwsgi.sock # wsgi文件 wsgi-file = /www/wwwroot/manage.py #启动文件 # wsgi文件中的app变量 callable = app # socket文件的权限 chmod-socket = 666
配置好后可以运行起来测试是否成功
$ workon python3 #进入虚拟环境 $ uwsgi --uid www --gid www --ini /www/wwwroot/uwsgi.ini #这个可以指定用户和用户组权限,也可以不指定。测试没能正常打开项目就往下面步骤继续配置
nginx配置
$ cd /etc/nginx/sites-enabled/ #切换到nginx默认配置目录 $ mv default default.bak #修改配置前先备份下配置 $ vi default server { listen 80; server_name www.xxoo.com; charset utf-8; client_max_body_size 75M; access_log /www/log/xxoo.access.log; error_log /www/log/xxoo.error.log; location / { include uwsgi_params; uwsgi_pass unix:/www/wwwroot/uwsgi.sock; #这个.sock文件一定要和uwsgi配置中一样 } }
修改nginx配置/etc/nginx/nginx.conf ,第一行user www www ; Nginx用户及组:用户 组 按自己需求配置。详细配置参数网上自己找
supervisor配置
supervisor配置路径:/www/wwwroot/supervisor.conf$ vi supervisor.conf [program:python] #这个python可以按自己需求写 # supervisor执行的命令 command=/root/.virtualenvs/py3-zqcms/bin/uwsgi --uid www --gid www --ini /www/wwwroot/uwsgi.ini # 项目的目录 directory = /www/wwwroot # 开始的时候等待多少秒 startsecs= 5 #按自己需求写 # 停止的时候等待多少秒 stopwaitsecs= 5 #按自己需求写 # 自动开始 autostart=true # 程序挂了后自动重启 autorestart=true # 输出的log文件 stdout_logfile=/www/log/supervisord.log # 输出的错误文件 stderr_logfile=/www/log/supervisorderr.log [supervisord] # log的级别 loglevel=info
配置好后就运行
$ supervisord -c /www/wwwroot/supervisor.conf #执行的时候注意是在python2环境
如何终止多余 Supervisor 进程?
$ ps -ef | grep supervisor #查看 $ kill 4012 #结束进程
欢迎交流
注意:uwsgi nginx supervisor我只是简单配置了下,各位可以按需求配置。详细配置参数网上有很多资料。哪里写错,可以留言告诉我。
相关文章推荐
- Python基础 - Ubuntu+Nginx+uwsgi+supervisor部署Flask应用
- 阿里云服务器部署笔记二(python3、Flask、uWSGI、Nginx)
- Flask+uwsgi+Nginx+Ubuntu部署
- flask部署-Ubuntu下使用nginx+uwsgi+supervisor部署flask应用
- flask部署-Ubuntu下使用nginx+uwsgi+supervisor部署flask应用
- Ubuntu 下用Nginx+uwsgi+MySQL部署Flask应用
- python Django + uwsgi + nginx 在阿里云Ubuntu环境下的部署
- Ubuntu 12.04 下部署 Nginx+uWSGI+Flask
- 转:在Ubuntu 上使用 Nginx 部署 Flask 应用:通过uwsgi
- Python 部署 flask 用uwsgi和nginx
- Nginx+uwsgi+supervisor在Ubuntu上部署flask应用
- Ubuntu server 12.04 LTS下 Nginx+uwsgi+Python-Flask 运行环境搭建
- 阿里云服务器部署笔记一(python3、Flask、uWSGI、Nginx)
- 阿里云ECS ubuntu 14.04部署python3+django(1.8.2)+uwsgi+nginx
- Flask+uwsgi+Nginx+Ubuntu部署
- ubuntu 14.04部署python项目(Nginx+uwsgi+django)
- Flask学习11:阿里云新手Flask + nginx + uwsgi + ubuntu的完整项目部署教程
- Flask+uwsgi+Nginx+Ubuntu部署教程
- Ubuntu 12.04 下部署 Nginx+uWSGI+Flask
- flask部署-Ubuntu下使用nginx+uwsgi+supervisor部署flask应用