Centos7系统,Nginx+uwsgi+flask框架部署web应用python
参考 https://www.jianshu.com/p/da28ec28ef4b
参考 https://blog.csdn.net/woshizhiwu/article/details/78237921mysql
1.安装git
yum install gitlinux
安装最新版本
yum install mysql-community-servernginx
启动 MySQL 服务
#CentOS 7
$sudo service mysqld start
$sudo systemctl start mysqld
$sudo systemctl status mysqldgit
修改密码
Mysql安装时会生成一个默认密码,使用 grep "temporary password" /var/log/mysqld.log命令,返回结果最后引号后面的字符串就是root的默认密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';github
安装 Python 3
sudo mkdir /usr/local/python3 # 建立安装目录
$ wget --no-check-certificate https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz # 下载 Python 源文件 web
$ tar -xzvf Python-3.6.2.tgz # 解压缩包
$ cd Python-3.6.2 # 进入解压目录
sudo ./configure --prefix=/usr/local/python3 # 指定建立的目录
sudo make
sudo make install # 编译安装sql
配置两个版本共存
建立 python3 的软连接:
$ sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python3flask
安装 Python 3 的 pipcentos
$ wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.1.tar.gz
$ tar -zvxf 9.0.1.tar.gz # 解压文件
$ cd pip-9.0.1
$ python3 setup.py install # 使用 Python 3 安装
建立连接:
$ sudo ln -s /usr/local/python3/bin/pip /usr/bin/pip3
建立虚拟环境
cd /home/www/blog
mkdir venv
python3 -m venv venv
激活虚拟环境:
source venv/bin/activate
而后根据requirements.txt文件安装依赖包:
pip3 install -r requirements.txt
开始正式部署:
简单介绍
在linux上,nginx+uwsgi是最多见的部署方式之一。整个部署过程大致分为三部分。
安装uwsgi。
pip install uwsgi
uwsgi官方文档地址:http://uwsgi-docs.readthedocs.io/en/latest/
4.nginx,uwsgi配置
打开nginx配置文件nginx.conf,这个文件默认位置为安装目录下的conf目录中。
只须要修改server块下的location块内容就能够,
若须要其余的配置,日志,多应用等能够参考nginx官方文档,或者相应书籍。
location块配置以下。
location / { include uwsgi_params; uwsgi_pass 127.0.0.1:3031; }
接下来在项目根目录下新建uwsgi.ini文件用以启动uwsgi。
[uwsgi]
master = true
socket = 127.0.0.1:3031
virtualenv = ./venv
wsgi-file = manage.py
callable = app
processes = 4
threads = 2
stats = 127.0.0.1:919
socket选项必定要与nginx,conf中相同。
若是用了虚拟环境,将virtualenv选项设置你的虚拟环境位置。没用虚拟环境则不加次条。
wsgi-file,运行项目打开的第一个文件。
callable ,manage.py中你建立的app的名字。
进程和线程根据硬件性能设置相应数值。
把工做目录定位到nginx安装目录下,运行nginx:
./sbin/nginx
把工做目录定位到项目根目录下,
uwsgi uwsgi.ini
若是没有报错,那么在浏览器中输入你的服务器ip或者解析到该ip的域名便可访问你的应用了。
后台启动 uwsgi : uwsgi deploy_new/uwsgi.ini -d uwsgi.log
安装 killall: centos7精简安装后,使用中发现没有killall命令。 安装这个包便可: yum install psmisc
关掉 uwsgi # killall -9 uwsgi
5.可能遇到的问题配置完成后,链接失败。 可能服务器没有开放80号端口,这个是默认端口。打开方法以下 firewall-cmd --zone=public --add-port=80/tcp --permanent 命令做用: –zone :做用域 –add-port : 添加的端口,格式为 端口/通信协议 –permanent : 永久生效,重启后不失效。 (21,22端口打开方法相同)nginx配置修改后必定要重启服务。若是须要开机启动,能够使用Supervisor。