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

本文详细介绍了如何在Ubuntu系统中使用Nginx、uwsgi和MySQL部署Flask应用。首先,文章讲解了MySQL的安装及编码设置;接着,配置Python环境,包括安装pip和virtualenv,以及解决Flask应用的依赖问题;然后,阐述了Nginx的配置文件编写和重启;最后,介绍了uWSGI的安装、配置,以及如何启动和设置开机自启服务。
摘要由CSDN通过智能技术生成
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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ubuntu是一个自由开源的操作系统,其中有很多的工具和服务可以用于搭建与开发Web应用。其中,常用的Web应用栈是使用Nginx作为Web服务器,UWSGI作为应用程序服务器,Django作为Web框架,MySQL作为关系型数据库。 要安装和配置这些服务,需要进行以下步骤: 1. 安装Ubuntu操作系统,可以选择最新版本的Ubuntu LTS或者最新的Ubuntu发行版。 2. 安装Nginx服务,并配置Nginx服务器来处理并转发HTTP请求。这里可以使用apt-get install命令来安装Nginx包。 3. 安装UWSGI服务,并配置UWSGI服务器来处理Django应用程序。这里可以使用pip install命令来安装UWSGI包。 4. 安装Django,并编写一个基本的Django应用程序。然后配置UWSGI服务器以运行Django应用程序。可以使用pip install命令来安装Django包。可以使用此教程 - https://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html 5. 安装MySQL数据库服务,并配置MySQL服务器以使用Django应用程序。可以使用apt-get install命令来安装MySQL包。 6. 在Django应用程序中配置MySQL数据库连接参数,并创建 MySQL数据库及表。 7. 配置Nginx服务器以使用UWSGI服务器来处理Django应用程序。可以使用上面的教程来完成这一步骤。 8. 启动NginxUWSGI服务器,并测试Django应用程序是否可以访问。 在进行以上的步骤时,需要注意安全措施,防止 Web 应用程序被攻击和入侵。同时,也需要进行充分的测试,保证 Web 应用程序的稳定性和可用性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值