六.Flask 发布上线(ubuntu)[nginx、uwsgi、mysql]

一.安装虚拟环境

为什么要创建虚拟环境:为了避免包冲突,等学会安装,使用操作了,需要自行下载你项目需要的python包

1.安装

sudo pip install virtualenv
sudo pip install virtualenvwrapper

失败尝试下面:

sudo pip install pbr -i https://pypi.tuna.tsinghua.edu.cn/simple

sudo pip install --no-deps stevedore -i https://pypi.tuna.tsinghua.edu.cn/simple

sudo pip install virtualenvwrapper -i https://pypi.tuna.tsinghua.edu.cn/simple

2.配置

进入:

cd ~

ls -al  (查看一个隐藏文件名字)

vim .bashrc

添加:

# 在末尾添加该代码,不会使用vim自己查一下使用方法

export WORKON_HOME=$HOME/.virtualenvs
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh


初始化:

source ~/.bashrc

虚拟环境基础操作:

创建虚拟环境: 
mkvirtualenv --python=/usr/bin/python3 flask_env
# 上面创建的文件夹在cd ~/.virtualenvs

进入虚拟环境:
workon 虚拟环境名字

退出虚拟环境:
deactivate

查看当前目录的python包:
pip list

二.安装uwsgi

为什么安装它:nginx是对外服务器,uwsgi是对内服务器;nginx负责筛选文件,向用户返回静态文件,然后把动态路由加粗样式提交给内服务器uwsgi来与flask交互处理。

1. 安装

pip install uwsgi

2.配置

创建:

# 在项目文件下创建文件 uwsgi.ini
touch uwsgi.ini
vim uwsgi.ini

写入:

[uwsgi]
master = true
socket=:8001 # 该位置与nginx通讯该地址与下面说的nginx地址需要一致
chdir = /srv/flask # 项目文件
wsgi-file=/srv/flask/app.py # 启动文件
callable=app
processes=10
threads=5
buffer-size = 65536
vacuum=true
pidfile =/srv/flask/uwsgi.pid  
virtualenv=/root/.virtualenvs/flask_env #虚拟环境地址
py-autoreload=1 #python内容更新,自动生效
stats=/srv/flask/uwsgi.status #如果生成该文件表示应该开启uwsgi

3.使用

注意:使用前自行先进入虚拟环境
查看进程:ps -aux
启动:uwsgi --ini uwsgi.ini
关闭:uwsgi --stop uwsgi.pid
重启:uwsgi --reload uwsgi.pid

三.nginx

1.安装

内容:apt install nginx
测试:访问自己服务器的ip地址,看看是否成功

2.基础配置

打开:

vim /etc/nginx/sites-enabled/default

删除原文件写入:

server {
        listen  80;
        server_name  wwww.jk.cn;
        #动态请求
        location / {
          include uwsgi_params;
          uwsgi_pass 127.0.0.1:8001;
        }
        #静态请求
        location /static {
          alias /srv/flask/static;
        }
   }

3.https配置

注意:3和4可以最后再配置

server {
        listen  443;
        server_name  wwww.jk.cn;
        # ssl配置
        ssl on;
        ssl_certificate   /srv/fla/wwww.jk.cn_public.crt;
        ssl_certificate_key  /srv/faaalask/ssl/6.key;
        ssl_session_timeout  5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
}

4.强制跳转

解释:这里跳转是http://www.jk.cnhttp://jk.cnhttps://jk.cn这几种情况跳转到https://www.jk.cn

server {
        # 80跳转
        listen 80;
        server_name jk.cn,www.jk.com;
        return 301 https://www.jk.cn$request_uri;
}
server {
        listen  443 ssl;
        server_name  wwww.jk.cn;
        # ssl配置
        ssl on;
        ssl_certificate    /srv/fla/wwww.jk.cn_public.crt;
        ssl_certificate_key  /srv/faaalask/ssl/6.key;
        ssl_session_timeout  5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
   }         
server {
        # 443 域名格式跳转 
        listen 443 ssl;
        server_name jk.cn;
        return 301 https://www.jk.cn$request_uri;
} 

四.mysql

1.下载

apt-get install mysql-client
apt-get install mysql-server

2.配置

修改root密码:

# 输入mysql进入操作
mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456789';

允许mysql能被外访问:

vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 将bind-address改为0.0.0.0
bind-address = 0.0.0.0

允许mysql的root用户能被访问:

# mysql -uroot -p 输入后进入mysql交互界面
use mysql;
update user set host = '%' where user = 'root';

3.操作

进入数据库:mysql -uroot -p

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值