• 海阔天空
    2019-01-04
    老师好,请教个问题:keepalived_timeout、proxy_send_timeout、proxy_read_timeout都是超时时间,如果配置成一样的值(两种情况:比如一个较大的1500s;再比如一个较小值60s),会不会存在问题呢?能不能把这几个超时时间解释下差异呢?盼回复,谢谢!

    作者回复: proxy_send_timeout是三次握手中SYN_SENT状态的时间(第5部分会介绍),proxy_read_timeout是两次读操作(参见第5部分的TCP滑动窗口)的超时,而keepalive-timeout则是http连接的空闲时间

    
     2
  • 高枕
    2018-12-29
    老师您好:我还是没有表达清楚,我想问您的是,您在本节所讲的内容中,给上游服务器8011设置的权重是2,所以客户端访问的时候会被两次分配到8011后才被分配一次8012。我是想知道,您这个例子里面没有使用zone,假设有两个work进程w1和w2,第一次客户端访问是w1处理,w1把请求转给了8011,第二次客户端访问若是w2处理,w2怎么知道上次分配的情况?

    作者回复: 两个worker进程顺序就乱了!w2不知道w1。如果需要知道,必须用zone。

    
     2
  • 小鱼👍
    2019-07-03
    老师 上游和下游分别指的什么?

    作者回复: 用户在下游,上游是供应方

     1
     1
  • 沙漠风暴
    2019-05-04
    史上最强nginx教程。
    
     1
  • liu
    2019-01-20
    对nginx理解确实牛👍👍👍
    
     1
  • liu
    2019-01-19
    老师好,upstream里面的keepalive 32;应该是nginx每个worker 保持的keepalive连接吧? 如果有16核的cpu,设置为auto方式,显然和upstream 中所有的机器保持的keepalive连接应该为16*32 , 我理解的对吗? 谢谢老师

    作者回复: 1、针对该upstream,如果有2个upstream{},就有2*32=64; 2、当没有配置zone时,也就是没使用ngx_http_upstream_zone_module模块,那么就是每个worker进程独立的,使用zone后就用共享内存代替原内存了,所以所有worker进程共享

    
     1
  • 无菇朋友
    2019-04-20
    陶老师您好:
    我在使用tcpdump时,浏览器访问有两次tcp建立,但是curl命令去访问时,本机会主动发送Fin包,这是为什么

    作者回复: 1、浏览器的渲染引擎网络模块有可能对一个站点建立多个连接,增加网络传输速度,以提升用户体验。
    2、HTTP规范中,如果是Connection: Keepalive,服务器不应主动关连接,自然需要客户端去关。

    
    
  • 牛牛
    2019-03-20
    看到这里我有一个疑问,老师,nginx与php-fpm通信,我用的是unix socket连接,这样配置keep-alive一样有效吗?

    作者回复: 有效

    
    
  • 牛牛
    2019-03-19
    老师,定时器是不是靠操作系统在维护,如果定时器超时就会触发相应的nginx处理函数,我这么理解对吗

    作者回复: nginx维护,第二部分讲红黑树时有讲到

    
    
  • Q
    2019-01-26
    老师 请问 ngnix自带的算法 是不是包括 rr wrr wlc iphash 这四种负载算法

    ngnix保持会话的机制 是不是包括三种 cookie保持 和ip hash 以及 hash一致性

    作者回复: 1、含有这四种。
    2、你说的是业务特性,Nginx提供的是基础功能,需要你根据保持会话的业务特性,根据第83、84、85、86课介绍的各模块指令的用法来编写nginx.conf,这些模块自身没有保持会话的机制。例如你需要基于cookie或者url参数来保证路由到同一台上游服务,那么你可以使用变量cookie_、http_cookie或者arg_来作为hash key

    
    
  • 平淡
    2019-01-13
    老师您好,请问keepalived是不是针对客户端在同一个连接上(相同的客户端ip和客户端端口)发送多次请求的场景下,才会生效?keepalived_timeout超时后,谁来把连接关闭呢,nginx会不停地检测这些连接吗?

    作者回复: 1、不是的,所有客户端都可使用同一连接;2、Nginx会加一个定时器到红黑树中(参见第40课),所以不存在不停检测这一说,定时器触发后就可以由Nginx关闭连接。

    
    
  • Panda
    2019-01-12
    用tcpdump抓包 看keepalive的效果很直观👍🏻
    
    
我们在线,来聊聊吧