• django之项目部署知识点


    一:项目部署的框架

      nginx和uWSGI在生产服务器上进行的部署

    二:什么是nginx?

      nginx是一个web服务器。

      什么是web服务器?

      web服务器则主要是让客户可以通过浏览器进行访问,处理HTML文件,css文件,js文件,图片等资源。web服务器一般要处理静态文件。对接服务器。

      什么是静态文件?

      css,js,html,图片等不需要后台进行逻辑处理的文件。

      特点:一般将静态文件放在web服务器里面。如nginx服务器中,做到动态静态分离的处理。

      什么是动态文件?

      除了静态文件之外,一般都是动态文件。

      特点:动态文件一般web服务器不直接进行处理,例如ngnix会将动态资源转发给应用服务器(反向代理),让应用服务器进行处理,并将处理结果,返给nginx,nginx在将结果返回浏览器。

      什么是应用服务器?

      应用服务器直接面对的是我们写的程序。

      特点:对接程序函数,处理业务逻辑。

      uWSGI是一个应用服务器。

    三:uWSGI和nginx之间通信的简单过程。

      uWSGI接到请求后,将请求包进行处理,处理成wsgi(一种通信协议)可以接受的格式,并发送给wsgi,wsgi根据请求,调用应用程序中的某个文件中的某个函数,进行处理,处理完成后,将返回值,再次交给wsgi,wsgi将返回值进行打包,打包成uWSGI接受的格式,然后uWSGI将结果转发给nginx,ngnix最终将返回值给浏览器。

    四:为什么分成静态服务器和应用服务器进行部署?

      实现了动和静分离。提高访问静态文件的速度降低对后台的访问提高了网站的吞吐量

      实现动静分离的方式:

      1. 页面静态化,页面静态化后的页面是放在哪里,硬盘还是缓存中。

      2. 静态文件例如:图片还有html,css文件时放在web服务器上,还是web服务器的缓存里面?

      3. 

      

    五:setting.py中的debug=True

      我们希望本机访问的时候,开启调试模式,错误了给错误信息的详细页面,其他机器访问的时候,关闭调试模式,错误了给他们404页面。  

      socket.gethostname() 返回的是主机名

      

      疑问:主机名这么短,难道不会重复吗?  2019-11-02

    # setting.py中改变DEBUG=True
    import socket 
    
    if socket.gethostname() == "xxx":
        DEBUG =True
    else:
        DEBUG = False

       

      

      

      

  • 相关阅读:
    kafka集群搭建
    数据导入 xls --》mysql
    Spark --RDD算子
    Spark集群搭建
    【已解决】 IDEA运行spark程序报错:GC overhead limit exceeded?
    Spring Boot 配置 ---02
    Spring Boot 入门 ---01
    Nginx 推流 拉流 --- 点播直播
    【转】JS内置对象方法
    MapReduce 简单数据统计
  • 原文地址:https://www.cnblogs.com/meloncodezhang/p/11764695.html
Copyright © 2020-2023  润新知