项目部署
相关环境安装
1. 更新源(修改源)
sudo apt-get update
2. mysql安装
apt-get install mysql-server
apt-get install libmysqlclient-dev
3. redis安装
# 安装依赖
sudo apt-get update
sudo apt-get install gcc
sudo apt-get install build-essential tcl
# 安装redis
sudo apt-get install redis-server
4. 安装虚拟环境
pip install virtualenv
pip install virtualenvwrapper
5. 配置 virtualenvwrapper
1. 使得安装的virtualenvwrapper生效,编辑~/.bashrc文件
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace
source /usr/local/bin/virtualenvwrapper.sh
2. 使编辑后的文件生效
source ~/.bashrc
6. 安装依赖包
在虚拟环境使用以下命令将当前虚拟环境中的依赖包以版本号生成至文件中
pip freeze > requirements.txt
进入虚拟环境 批量安装依赖包
pip install -r requirements.txt
在安装 Flask-MySQLdb 的时候可能会报错,可能是依赖包没有安装,执行以下命令安装依赖包
sudo apt-get build-dep python-mysqldb
Nginx
sudo apt-get install nginx
运行及停止
/etc/init.d/nginx start #启动
/etc/init.d/nginx stop #停止
配置文件
编辑文件:/etc/nginx/sites-available/default
# 如果是多台服务器的话,则在此配置,并修改 location 节点下面的 proxy_pass
upstream flask {
server 127.0.0.1:5000;
server 127.0.0.1:5001;
}
server {
# 监听80端口
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
# 请求转发到gunicorn服务器
proxy_pass http://127.0.0.1:5000;
# 请求转发到多个gunicorn服务器
# proxy_pass http://flask;
# 设置请求头,并将头信息传递给服务器端
proxy_set_header Host $host;
# 设置请求头,传递原始请求ip给 gunicorn 服务器
proxy_set_header X-Real-IP $remote_addr;
}
}
MySQL安装
sudo apt-get install mysql-server
redis 安装
sudo apt-get install redis-server
Nginx卸载和安装
采用 C 语言编写
实现分流、转发、负载均衡
删除nginx,-purge包括配置文件
sudo apt-get –purge remove nginx
移除全部不使用的软件包
sudo apt-get autoremove
罗列出与nginx相关的软件并删除
dpkg –get-selections|grep nginx
sudo apt-get –purge remove nginx
sudo apt-get –purge remove nginx-common
sudo apt-get –purge remove nginx-core
查看nginx正在运行的进程,如果有就kill掉
ps -ef |grep nginx
sudo kill -9 XXX
全局查找与nginx相关的文件
sudo find / -name nginx*
sudo rm -rf file
删除列出的所有文件
sudo rm -rf file
重装nginx
sudo apt-get update
sudo apt-get install nginx
Nginx 的其他内容
测试nginx配置是否正确
sudo nginx -t
nginx 重启
sudo service nginx restart
nginx: [emerg] a duplicate default server for 0.0.0.0:80 in /etc/nginx/sites-enabled/ms.recipe_box.com.conf:2
删除/etc/nginx/sites-available/default文件,重新启动服务即可
Nginx 效果出现异常建议重启Nginx服务* sudo service nginx restart*
Gunicorn 安装
1. Gunicorn(绿色独角兽)是一个Python WSGI的HTTP服务器
2. 从Ruby的独角兽(Unicorn )项目移植
3. 该Gunicorn服务器与各种Web框架兼容,实现非常简单,轻量级的资源消耗
4. Gunicorn直接用命令启动,不需要编写配置文件
安装
安装
pip install gunicorn
查看选项
gunicorn -h
运行
# -w: 表示进程(worker) -b:表示绑定ip地址和端口号(bind)
gunicorn -w 2 -b 127.0.0.1:5000 运行文件名称:Flask程序实例名
pip升级
安装 sudo apt-get install python3-pip
升级 sudo pip3 install –upgrade pip
卸载 sudo apt-get remove python3-pip
附加内容
腾讯云(ubuntu16.04)不能升级pip 的解决方法
1. 尝试更新源
sudo apt-get update
修改源
sudo vim /etc/apt/sources.listdeb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse # disabled on upgrade to xenial
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse # disabled on upgrade to xenial
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse #Not for humans during development stage of release xenial
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse # disabled on upgrade to xenial
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse # disabled on upgrade to xenial
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse # disabled on upgrade to xenial
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse # disabled on upgrade to xenial
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse #Not for humans during development stage of release xenialdeb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse # disabled on upgrade to xenial
然后执行
更新源 sudo apt-get update
更新系统 sudo apt-get upgrade