部署Flask + Nginx +uWSGI记载

环境:ubuntu16.04

准备工作:

首先python环境中,ubuntu16.04中已经默认安装了python2.7 和python3.5
而我所编写的程序是基于python3的,ubuntu默认都是2.7 ,所以需要先切换版本为3.5

update-alternatives --config python #切换python版本
apt-get install pip #安装pip
pip install virtualenv #安装沙盒环境

把项目放在/var/www文件夹之下,cd进入项目文件夹

virtualenv venv  #创建沙盒环境文件夹
source venv/bin/activate  #进入沙盒环境
pip install python3-dev #安装依赖包
pip install uwsgi  #安装uwsgi
pip install -r requirements.txt  #安装flask等所需第三方库
deactivate  #退出沙盒环境

安装mysql

apt-get update
apt-get install mysql-server

修改数据
vi /etc/mysql/mysql.conf.d/mysqld.cnf
找到bind-address = 127.0.0.1 这一行注释掉 实现外网访问数据库
在lc-messages-dir = /usr/share/mysql这一句下面添加:

character-set-server=utf8 #设置编码为utf-8 保存退出

vi /etc/mysql/conf.d/mysql.cnf
default-character-set=utf8 #添加这一行设置编码为utf-8 保存退出
service mysql start 启动mysql服务

mysql -uroot -p #登录数据库 进入mysql命令行
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION; # 授权外网用户访问

至此mysql配置完毕。

配置uwsgi:

cd 进入项目目录 ,创建config.ini 文件为uwsgi配置文件

[uwsgi]
#application's base folder
base = /var/www/community

#python module to import
app = run
module = %(app)

home = %(base)/venv
pythonpath = %(base)

#socket file's location
socket = /var/www/community/uwsgi.sock
#permissions for the socket file
chmod-socket    = 666

#the variable that holds a flask application inside the module imported at line #6
callable = app

安装Nginx

apt-get install nginx #安装nginx
vi /etc/nginx/sites-available/default #修改nginx配置文件

配置内容:

server {

        listen 80;
        server_name ip或域名;
        charset utf-8;
        client_max_body_size 75M;
        access_log /var/www/community/log/access.log;
        error_log /var/www/community/log/error.log;
        location / {
                include uwsgi_params;
                uwsgi_pass unix:/var/www/community/uwsgi.sock;
                }
    location /static {
                root /var/www/community/app/;
        }
}
service nginx start #启动nginx 

安装supervisor

因为supervisor不支持python3,所以切换python默认版本为2.7

update-alternatives --config python #切换python版本

安装supervisor:

apt-get install supervisor
cd /etc/supervisor/conf.d #进入此目录

创建一个任意名.conf 配置文件
内容如下:

[program:community]

# 启动命令入口

command=/var/www/community/venv/bin/uwsgi /var/www/community/config.ini



# 命令程序所在目录

directory=/var/www/community

#运行命令的用户名

user=root

autostart=true

autorestart=true

#日志地址

stdout_logfile=/var/www/community/log/uwsgi_supervisor.log

配置完毕就启动进程管理器:

supervisorctl start all #启动全部进程
supervisorctl start all #查看进程状态

至此全部配置完毕,可正常访问web应用,中途还有一些坑忘记了,以后想起来再补。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值