• Master Nginx(7)


    Caching integration

      No application caching

      Caching in the database

      Caching in the filesystem

    Changing content on-the-fly

      The addition module

      The sub module

      The xslt module

    Using Server Side Includes

    Decision-making in Nginx

    Creating a secure link

    Generating images

    Tracking website visitors

    Preventing inadvertent code execution

    nginx作为客户端来请求其它server的数据(如upstream模块)

    因为作为反向代理服务器,每个并发会建立与客户端的连接和与后端的连接,会占用两个连接。

    当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务器。

    nginx使用一个叫ngx_accept_disable的变量来控制是否去竞争accept_mutex锁。计算ngx_accept_disable的值,这个值是单进程的所有连接总数的1/8,减去剩下的空闲连接数量。

    当ngx_accept_disable大于0时,不会去尝试获取accept_mutex锁,并且将ngx_accept_disable减1,直到小于0.

    ngx_http_request_t

    读取一行数据,分析出请求行中包含的method, uri, http_version信息。

    ngx_http_init_request => ngx_http_process_request_line(设置读事件) => ngx_http_read_request_header => ngx_http_parse_request_line
    => ngx_http_process_request_headers(设置读事件) => ngx_http_process_request_headers => ngx_http_parse_header_line(解析一行请求头)
    headers_in是一个链表结构,保存所有的请求头。ngx_http_headers_in(映射表) => ngx_http_process_host
    headers_out

    当nginx解析到两个回车换行符时,就表示请求头的结束。
    ngx_http_process_request => ngx_http_request_handler(设置读写事件) => (read_event_handler/write_event_handler) => ngx_http_handler

    read_event_handler => ngx_http_block_reading
    write_event_handler => ngx_http_core_run_phases => 执行多阶段请求处理

    nginx的各种阶段会对请求进行处理,最后会调用filter来过滤数据,对数据进行加工,如truncked传输,gzip压缩等。
    filter是一个链表结构 => (header filter / body filter) => ngx_http_header_filter => ngx_http_write_filter

    client_header_buffer_size => large_client_header_buffers 4 8k 表示有4个8k大小的buffer可用。为了保持请求行或者请求头的完整性,一个完整的请求行或请求头,需要放在一个连续的内存里面。

    414 => 请求行大于一个buffer大小
    400 => 请求头大于一个buffer大小

    为了提高效率,采用状态机来解析请求行,

    GET http://www.taobao.com/uri HTTP/1.0 此时,会忽略掉请求头中的host

  • 相关阅读:
    查看kafka在zookeeper中节点信息和查看方式
    安装单机版redis
    一 Redis 简介 和存储
    Spark消费kafka的直连方式
    Streaming 累加器和广播变量 和sql
    sparkStreaming转换算子02
    DStreams输入 从kafka消费数据 直连
    关于上下文图
    2018年春季个人阅读计划
    问题账户需求分析
  • 原文地址:https://www.cnblogs.com/thlzhf/p/5657904.html
Copyright © 2020-2023  润新知