Flask-项目部署

WEB工作原理

  • 客户端 <=> WEB服务器(nginx)<=> WSGI(uWSGI)<=> Python(Flask)<=> 数据库(MySQL)

nginx服务器

  • 讲Linux时已安装
  • 虚拟主机配置
    • nginx主配置文件nginx.conf最后一个大括号前添加include vhost /*.config;
    • conf目录创建vhost文件夹
    • vhost文件夹中创建一个新的虚拟主机配置文件www.blog.com.conf
    • 里面写上server,即代表一个虚拟主机(一个网站)
      1
      2
      3
      4
      5
      6
      7
      8
      9
      server {
      listen 80;
      server_name www.blog.com blog.com;

      location / {
      root html/blog;
      index index.html;
      }
      }

uWSGI

  • **说明:**实现了WSGI协议的应用程序,使用非常方便
  • 安装:pip install uwsgi
  • 配置:
    1
    2
    3
    4
    5
    6
    7
    8
    http			# 采用http协议启动
    socket # 采用socket协议启动
    wsgi-file # 将数据交给那个模块处理
    callable # 具体可调用的对象
    chdir # uwsgi启动后的当前目录
    daemonize # 后台,需要指定一个日志文件
    processes # 指定程序运行的进程数
    threads # 指定程序运行的线程数
  • 简单启动示例(http协议)
    1
    uwsgi --http 127.0.0.1:5000 --wsgi-file blog.py --callable app
  • socket方式启动:
    • nginx转发请求,以socket协议转发到127.0.0.1:5000
      1
      2
      3
      4
      location / {
      include uwsgi_params;
      uwsgi_pass 127.0.0.1:5000;
      }
    • uwsgisocket协议启动,监听127.0.0.1:5000
    • 示例:uwsgi --socket 127.0.0.1:5000 --wsgi-file blog.py --callable app
    • 将启动配置写入文件uwsgi.ini
      1
      2
      3
      4
      5
      6
      [uwsgi]
      socket = 127.0.0.1:5000
      wsgi-file = blog.py
      callable = app
      # 后台启动,需要指定日志文件,日志文件需要有操作权限
      daemonize = /var/log/uwsgi.log

静态文件处理

  • **说明:**上面所有的请求都转发是没有必要的,譬如:静态文件直接返回即可
  • 准备:
    • 创建static目录
    • 拷贝几个用于测试的静态文件,如:图片、js、css等
  • 设置转发规则:
    1
    2
    3
    4
    location /static {
    root html/blog;
    # alias html/blog/static;
    }
本文结束 感谢您的阅读
正在加载今日诗词....