Ubuntu 下用Nginx+uwsgi+MySQL部署Flask应用

本文详细介绍了如何在Ubuntu系统中使用Nginx、uwsgi和MySQL部署Flask应用。首先,文章讲解了MySQL的安装及编码设置;接着,配置Python环境,包括安装pip和virtualenv,以及解决Flask应用的依赖问题;然后,阐述了Nginx的配置文件编写和重启;最后,介绍了uWSGI的安装、配置,以及如何启动和设置开机自启服务。
Ubuntu 下用Nginx+uwsgi+MySQL部署Flask应用

一、MySQL安装
1.下载官方提供的mysql-apt-config.deb包进行APT源设置,下载地址:https://dev.mysql.com/downloads/repo/apt/
运行sudo dpkg -i mysql-apt-config_0.8.9-1_all.deb
 一般只需要默认,按方向键选择OK回车即可。
完成后运行更新命令:
sudo apt-get update
 2、安装
sudo apt-get install mysql-server
安装过程会提示输入数据库的登录名和密码,输入即可
3、修改编码
在/etc/mysql/conf.d/mysql.cnf中的【mysql]下写入default-character-set=utf8
在/etc/mysql/mysql.conf.d/mysqld.cnf中的【mysqld]下写入character-set-server=utf8
重启mysql: sudo service mysql restart
4、创建Flask应用需要的数据库


二、Python环境搭建

安装pip
sudo apt-get install python3-pip
通过pip安装virtualenv,为 flask 项目构建虚拟环境
sudo pip3 install virtualenv
sudo virtualenv ENV
sudo source ENV/bin/activate  # 激活虚拟环境
sudo pip3 install -r requirement.txt  # 解决依赖问题

sudo deactivate  # 退出依赖环境


三、Nginx安装配置
sudo apt-get install nginx
启动 nginx 的方法:
sudo /etc/init.d/nginx start

sudo service nginx start

删掉 Nginx 的默认配置文件:
sudo rm /etc/nginx/sites-enabled/default
在/etc/nginx/conf.d中写入应用配置文件flasky.conf、hello.conf
hello.conf内容如下:
server { 
    listen 80; 
    server_name www.hello1.com; 
    location / { 
        include uwsgi_params; 
        uwsgi_pass 127.0.0.1:3031; 
        uwsgi_param UWSGI_PYTHON /home/walker/env1;
        uwsgi_param UWSGI_CHDIR /home/walker/Downloads;
        uwsgi_param UWSGI_SCRIPT hello:app;
    }
}
flasky.conf内容如下:
server { 
    listen 80; 
    server_name www.flasky1.com; 
    location / { 
        include uwsgi_params; 
        uwsgi_pass 127.0.0.1:3032; 
        uwsgi_param UWSGI_PYTHON /home/walker/ENV;
        uwsgi_param UWSGI_CHDIR /home/walker/Downloads/flasky-1;
        uwsgi_param UWSGI_SCRIPT manage:app;
    }
}
重启Nginx
sudo service nginx restart




四、uWSGI安装配置
uWSGI 是一个 C 语言写的应用,需要 C 编译器,以及 python 开发相关组件:
sudo apt-get install build-essential python3-dev
sudo pip3 install uwsgi
hello应用对应的配置文件uwsgi3031.ini内容如下:
[uwsgi]
socket = 127.0.0.1:3031
vhost = true
app = hello
module = %(app)
home = /home/walker/env1
pythonpath = /home/walker/Downloads
callable = app
stats = 127.0.0.1:9000
plugin = python3


flasky应用对应的配置文件uwsgi3032.ini内容如下:
[uwsgi]
socket = 127.0.0.1:3032
vhost = true
app = manage
module = %(app)
home = /home/walker/ENV
pythonpath = /home/walker/Downloads/flasky-1
callable = app
stats = 127.0.0.1:9001
plugin = python3




在终端输入sudo gedit /etc/hosts修改hosts文件:
增加
127.0.1.1 www.hello1.com
127.0.1.1 www.flasky1.com


sudo uwsgi --emperor /home/walker/Downloads/uwsgi-config启动多个应用
sudo uwsgi --ini /home/walker/Downloads/uwsgi-config/uwsgi3031.ini 启动单个应用
这时可以在浏览器中输入域名进行访问。


sudo touch /etc/systemd/system/uwsgi.service
创建uwsgi.service文件,内容如下:
[Unit]
Description=uWSGI Emperor service
After=syslog.target

[Service]
ExecStart=/usr/local/bin/uwsgi --emperor /home/walker/Downloads/uwsgi-config
Restart=always
KillSignal=SIGQUIT
Type=notify
StandarError=syslog
NotifyAccess=all


[Install]
WantedBY=multi-user.target

键入以下命令启动uWSGI
sudo systemctl start uwsgi



开机自启动服务
sudo gedit /etc/rc.local
打开rc.local文件在exit 0上面增加
/usr/local/bin/uwsgi --emperor /home/walker/Downloads/uwsgi-config

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值