• Panda
    2019-01-20
    proxy开启 keepalive 的好处 和 坏处 有哪些

    作者回复: 好处是性能更高,坏处是问题定位更困难些

     2
     2
  • runner
    2019-01-10
    老师好,我们用 nginx 做缓存服务器,客户端用 head 请求,nginx 做转发缓存,我们以 http_code 是否为200来判断 文件缓存完成,实际是有问题的,nginx 会把 响应头信息,及时返回客户端。此时文件并没有缓存完。
    怎么能做到当我收到 http_code 时候,文件已经缓存完成了呢?

    作者回复: 我补充下,你是说:nginx缓存上游的response,而client希望收到response时,且code是200,但还没有收完body,就想判断nginx缓存到完整的response body了吗?
    我有个问题,为什么不等接收到完整的http response body再判断呢?因为body是有Content-Length头部标识的,客户端可以判断接收到完整的响应了,且code是200,此时就可以判断nginx缓存完成了。

    
     2
  • Panda
    2019-01-23
    谢谢老师的解答
    
     1
  • 高枕
    2019-01-09
    老师您好,nginx等待上游返回结果的时候,这个work进程是阻塞的状态吗?

    作者回复: 不是的,worker进程仍然处于Running状态,而不是Sleep状态,除非没有其他可以处理的连接,非常空闲。

    
     1
  • 高枕
    2019-01-08
    老师您好,nginx等待上游返回结果的时候,这个work进程中的线程是阻塞的状态吗?

    作者回复: 不是的,worker进程中没有线程(仅在读取磁盘时可以通过thread_pool配置线程)。

    
     1
  • 帅
    2019-06-15
    老师你看看我这个是怎么回事?不应该,但是我访问的时候curl www.ll.com/a.txt是显示出来aaaaaaaa的,是没问题,但是没有那个文件
    
    
  • 帅
    2019-06-15
    老师,我的配置上游和你的一样,但是我 cat tmp/a.txt没有这是怎么回事啊
    upstream a{
            #ip_hash;
            #hash user_$arg_username;
            server 127.0.0.1:8012;
           # keepalive 32;
            }
            server {
            listen 8012;
            default_type text/plain;
            #return 200 '8012 server response .uri: $uri method: $uri \n';
            root html;
            location /test{
                    return 200 '8012 server response .uri: $uri method: $uri \n';
            }
         }
    server {
            listen 80;
            server_name www.ll.com;

            #charset koi8-r;
            root /tmp;
            access_log logs/upstream_access.log va;
            #set_real_ip_from 192.168.147.130;
            #real_ip_recursive on;
            #real_ip_header X-Forwarded-For;

            location / {
                    proxy_pass http://a;
                    proxy_store on;
                    proxy_store_access user:rw group:rw all:r;
                   # proxy_http_version 1.1;
                   # proxy_set_header Connection '';

                root html;
                index index.html index.htm index.php;
            }
    }
    展开

    作者回复: 看下error.log中的日志有什么输出么?

    
    
  • 无菇朋友
    2019-04-23
    陶老师您好,有个疑问:
    nginx从上游读取body时,如果body小于proxy_buffers设置的大小,即使开启了proxy_buffering,也不会写入到临时文件中,那么nginx在读取客户端的请求body是否类似呢,即使开启了proxy_request_buffering,如果body小于client_body_buffer_size,也不会写入到临时文件中?

    作者回复: 是的。客户端有一个强制写入临时文件的指令,主要用作定位问题

    
    
  • 只争朝夕1990
    2019-02-17
    老师问一下,proxy_read_timeout解释是两次read operation之间超过这个时间,就会报错。
    也就是说这个proxy_read_timeout不是指的单次从请求到返回的超时,而是两个请求间的?

    作者回复: 不是,请求和响应是业务层面,两次read操作是指,从系统socket缓冲区调用两次read方法读取内容的超时,参考第125课

    
    
  • Panda
    2019-01-24
    proxy_store 在做文件缓存服务器场景下很合适
    
    
我们在线,来聊聊吧