• nginx 代理请求流程


    nginx 代理请求流程

        1.当HTTP请求交给Nginx处理时,首先Nginx会取出header头中的Host (此处也就是 www.baidu.com),然后将其与所有的配置文件中的每个server段中的server_name进行匹配,以此            决定到底有哪个server块来处理这个请求。(当然有时也可能一个Host与多个server块中的server_name都匹配,这时会根据匹配的优先级选择实际处理的server块,优先级这里就不再细说。)
    
    2.此时我们可以看出HTTP请求匹配到了截图中的server_name,这样接下来nginx就会根据header中的Request URI字段进行与location匹配,如上面配置文件的截图所示,匹配到了 location /   。
    
    3.接下来继续由nginx处理可以看到 proxy _pass  http://rocdn ;  这就是进行反向代理处理,这个例子中使用的是nginx的upstream模块进行反向代理实现。
    
    4.通过proxy _pass  http://rocdn ; 中的 rocdn 可以找到对应的upstream块,然后,可以根据其中的server 115.239.210.27:80;再次进行代理请求,
    
    此时发送的GET包内容:Host字段 and Request URI字段 都和上面一样,
    
    5.当代理HTTP请求到达 百度的服务器:115.239.210.27后,若百度也是nginx,则服务器会对其进行类似上面的nginx处理HTTP请求一样,进行server_name 和 location匹配,并将相应的请求资源返回代理服务器。
    
    6.Nginx反向代理服务器接收到百度服务器的返回资源后,再将其返回给客户端浏览器。
    

    生产环境:Linux+Nginx+uWSGI+Django

    1、首先客户端请求服务资源,
    2、Nginx作为直接对外的服务接口,接收到客户端发送过来的http请求,会解包、分析,
      如果是静态文件请求就根据nginx配置的静态文件目录,返回请求的资源,
      如果是动态的请求,nginx就通过配置文件,将请求传递给uWSGI;
    3、uWSGI 将接收到的包进行处理,并转发给wsgi,
    4、wsgi根据请求调用django工程的某个文件或函数,处理完后django将返回值交给wsgi,
    5、wsgi将返回值进行打包,转发给uWSGI,
    6、uWSGI接收后转发给nginx,nginx最终将返回值返回给客户端(如浏览器)。
    希望你眼眸有星辰,心中有山海,从此以梦为马,不负韶华
  • 相关阅读:
    记录一下自己的洛谷的题解
    初学java 学生管理系统——v0002版本
    初学java 学生管理系统——v0001版本
    Redis守护进程作用+数据类型
    java实现发送短信验证码
    Kali入侵入门版笔记!!!
    2020实现ssh公网外联和外网远程穿透以及内网穿透防火墙
    监控键盘和鼠标记录内容和截屏,更新版本2.0,增加了Linux服务端!!!
    Git管理软件开发项目入门版
    2020年Windows下开机自动执行最强
  • 原文地址:https://www.cnblogs.com/daviddd/p/12606897.html
Copyright © 2020-2023  润新知