location和LMNP架构

location配置

  Nginx配置文件中的location部分主要用来对于传入的URL进行匹配到特定的location,并从这个location中定义的目录下查找请求的文件。

  location的优先级

    使用Nginx Location可以控制访问网站的路径, 但一个server可以有多个location配置,为区分优先级而需要设定location的匹配规则。

    location中的优先级规则为(从上到下优先级依次降低):

      等号类型(=),该类型为精确匹配,一旦匹配成功则不再查找其他匹配项

      前缀普通匹配(^~),不支持正则表达式;如果有多个location都能匹配的话,优先匹配表达式最长的location

      正则表达式匹配,包括~(区分大小写)和~*(不区分大小写);正则匹配以从上到下的顺序为优先级,一旦匹配一个则不再继续匹配

      常规字符串匹配,如果有多个location都能匹配的话,优先匹配表达式最长的location。

  案例:

    测试location的优先级

location和LMNP架构

 

 

    结果:

location和LMNP架构

 

 

LNMP架构

  LNMP是一套技术的组合,L=Linux、N=Nginx、M~=MySQL、P~=Python

  首先Nginx服务是不能处理动态请求,那么当用户发起动态请求时, Nginx又是如何进行处理的。
    1.静态请求:请求的内容是静态文件就是静态请求
      1)静态文件:文件上传到服务器,永远不会改变的文件就是静态文件
      2)html就是一个标准的静态文件
    2.动态请求:请求的内容是动态的就是动态请求
      1)不是真实存在服务器上的内容,是通过数据库或者其他服务拼凑成的数据
  当用户发起http请求,请求会被Nginx处理,如果是静态资源请求Nginx则直接返回,如果是动态请求Nginx则通过uwsgi协议转交给后端的Python程序处理

  uwsgi

    因为nginx不支持wsgi协议,无法直接调用py开发的webApp。

    在nginx+uWsgi+Django的框架里,nginx代理+webServer,uWsgi是wsgiServer,Django是webApp。

    nginx接收用户请求,并判定哪些转发到uWsgi,uWsgi再去调用pyWebApp。

  uwsgi服务部署

    1.安装依赖文件

      由于Django和uwsgi都需要基于Python,所以要先下载依赖文件

location和LMNP架构

 

 

    2.安装Django和uwsgi

location和LMNP架构

 

 

location和LMNP架构

 

 

    3.创建项目

      1.安装完环境后就可以创建项目,

      在某个文件夹下创建一个项目文件

location和LMNP架构

 

 

      2.再到创建好的项目文件下创建一个程序

location和LMNP架构

 

       3.修改linux下的配置文件,

location和LMNP架构

 

 

        允许所有ip访问,

location和LMNP架构

 

         删除原有数据库。

 

location和LMNP架构

 

      4.测试Django是否正常

location和LMNP架构

 

         打开网站测试是否正常

location和LMNP架构

 

         这样在Python环境下django算是搭建完成,但为了提高承载能力,一般需要使用uwsgi配合

      5.编辑项目配置文件

        使用uwsgi需要在项目目录下增加配置文件

location和LMNP架构

 

 

location和LMNP架构
[uwsgi]
# 端口号
socket            = :8000
# 指定项目的目录
chdir           = /opt/linux
# wsgi文件路径
wsgi-file       = linux/wsgi.py
# 模块wsgi路径
module          = linux.wsgi
# 是否开启master进程
master          = true
# 工作进程的最大数目
processes       = 4
# 结束后是否清理文件
vacuum          = true
配置文件

      6.启动uwsgi

location和LMNP架构

 

 

      7.编辑Nginx配置文件并重启Nginx

location和LMNP架构

 

 

location和LMNP架构
server {
    listen 80;
    server_name py.test.com;
    location / { 
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8000;
        uwsgi_read_timeout 2;
        uwsgi_param UWSGI_SCRIPT linux.wsgi;
        uwsgi_param UWSGI_CHDIR /opt/linux;
        index  index.html index.htm;
        client_max_body_size 35m;
    }
}
Nginx配置

 

      8.域名解析

location和LMNP架构

 

 

      9.尝试访问

location和LMNP架构

 

 

  部署bbs项目

    接下来尝试使用数据库部署一个动态的请求。

    1.部署数据库

      首先需要安装数据库

      mariadb其实就是mysql

location和LMNP架构

 

       安装成功后启动数据库

location和LMNP架构

 

 

    2.远程链接数据库

      首先打开mysql创建一个数据库并执行远程链接

location和LMNP架构

 

 

      打开pycharm并链接数据库

location和LMNP架构

 

 

    3.上传网站代码

location和LMNP架构

 

 

    4.数据库迁移

      1.确保bbs/app01/migrations目录下只有__init__.py一个文件

location和LMNP架构

 

 

      2.确保Django版本与当前项目的版本相符(此项目为1.11版本)

location和LMNP架构

 

 

      3.安装MySQL数据库插件

location和LMNP架构

 

 

      4.修改bbs配置文件

location和LMNP架构

 

         使所有ip可访问

location和LMNP架构

 

         修改数据库

location和LMNP架构

 

 

        创建数据库迁移文件

location和LMNP架构

 

 

         数据库迁移

location和LMNP架构

 

 

        在Python中确认

location和LMNP架构

 

    5.配置uwsgi

      配置uwsgilocation和LMNP架构

 

 

        启动uwsgi

location和LMNP架构

 

 

    6.配置Nginx

      设置Nginx配置文件

location和LMNP架构

 

 

      重启Nginx

location和LMNP架构

 

     7.测试访问

location和LMNP架构

 

上一篇:Android 中获取LocationProvider的三种方法和获取定位信息


下一篇:view.getLocationOnScreen(location)和view.getLocationInWindow(location)的区别