Flask项目部署

2016/05/26 Flask 阅读次数:

Flask项目部署

uwsgi安装

  • uwsgi是一个能够运行flask项目的高性能web服务器,需要先安装两个依赖
apt-get install build-essential python-dev
  • 然后进行uwsgi的安装
pip install uwsgi

nginx安装

apt-get install nginx

mysql的安装:

apt-get install mysql-server
apt-get install libmysqlclient-dev

redis的安装:

sudo apt-get install redis-server

redis-server # 启动redis服务器

虚拟环境的安装

  • virtualenv和virtualenvwrapper的安装:
pip install virtualenv
pip install virtualenvwrapper
  • 使得安装的virtualenvwrapper生效,编辑~/.bashrc文件,内容如下:
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace
source /usr/local/bin/virtualenvwrapper.sh
  • 使编辑后的文件生效
source ~/.bashrc
  • 创建虚拟环境
mkvirtualenv flask_py2

如果以上服务器都有了,不需要再次进行安装,按下面进行操作:

  • 在当前项目的根目录下,创建config.ini文件作为uwsgi的初始化配置文件
#需要声明uwsgi使得uwsgi能够识别当前文件
[uwsgi]
master = true
# 使用 nginx 配合连接时使用
socket = :5000
# 直接做web服务器使用
# http = :5000
# 设定进程数
processes = 4
# 设定线程数
threads = 2
# 指定运行的文件
wsgi-file = manage.py
#指定运行的项目的目录[自已项目在哪个目录就用哪个目录]
chdir = /home/yyl/Flask-iHome21
# 指定运行的实例
callable = app
# 指定uwsgi服务器的缓冲大小
buffer-size = 32768
# 在虚拟环境中运行需要指定python目录
pythonpath = /home/yyl/.virtualenvs/flask_py2/lib/python2.7/site-packages
# 设置进程id文件
pidfile = uwsgi.pid
# 以守护的形式运行,设置log输出位置
daemonize = uwsgi.log
  • 利用scp命令将整个项目上传到远程服务器中
scp -r 本地目录 用户名@ip地址:远程目录

scp -r /home/python/Desktop/hello_world/ root@http://39.106.219.184/:/home
  • 进入虚拟环境并通过指令运行uwsgi.ini服务器
workon flask_py2

# 启动uwsgi
uwsgi --ini config.ini

# 停止uwsgi
uwsgi --stop uwsgi.pid

其中

–ini config.ini 表示指定运行的配置文件 -d uwsgi.log 表示uwsgi在后台运行,运行过程中产生的日志会存储在uwsgi.log中

  • 配置nginx服务器

编辑文件:vi /usr/local/nginx/conf/nginx.conf #可能每个服务器的ngin.conf路径不一样,根据服务器nginx路径

修改为如下内容:

server {
listen 80 default_server;
# 这个时服务器命字,随便起
server_name iHome;

location / {
include uwsgi_params;
# 这个地址是服务器地址外网ip地址和端口
uwsgi_pass 39.106.219.184:5000;
uwsgi_read_timeout 100;
}
}

将server中原有的,上述配置中不能存在的内容注释或删除掉

  • 启动和停止nginx服务器
/etc/init.d/nginx start #启动
/etc/init.d/nginx stop #停止

sudo /usr/local/nginx/sbin/nginx #启动
sudo /usr/nginx/sbin/nginx -s reload #平滑重启

ps -ef | grep nginx

  从容停止 sudo kill -QUIT 主进程号

  快速停止 sudo kill -TERM 主进程号

  强制停止 sudo kill -9 nginx

注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:

在nginx/sbin/目录下运行:
./nginx -t

Search

    Table of Contents