• 使用nginx记日志

    日期:

    使用nginx记日志 做web服务和应用的时候,很多场景下需要记录日志。 如 访问日志,性能分析日志,打点日志,数据统计日志等。 假设有以下主机设置 server { listen 80; server_name abc.cc; root /etc/www/abc; access_log /var/log/www/abc/access.log; loca...

  • Nginx浏览本地目录设置

    日期:

    老是记不住,干脆放在这里记录下来。 server{ listen81; server_namelocalhost; location=/favicon.ico{ log_not_foundoff; log_subrequestoff; } location^~/log{ alias/home/dist; autoindexon; autoindex_exact_sizeoff; autoindex_localtimeon; } } serv...

  • nginx subrequest的实现解析

    日期:

    大家都知道nginx里面有一个subrequest的概念,也就是子请求,它并不是http标准里面的概念,它是在当前请求中发起的一个新的请求,它拥有自己的ngx_http_request_t结构,uri和args。一般来说使用subrequest的效率可能会有些影响,因为它需要重新从server rewr...

  • nginx的请求接收流程(一)

    日期:

    今年我们组计划写一本nginx模块开发以及原理解析方面的书,整本书是以open book的形式在网上会定时的更新,网址为http://tengine.taobao.org/book/index.html。本书分析的nginx源码版本为1.2.0,环境为linux,事件处理模型为epoll,大部分分析流程都基于以上...

  • nginx的请求接收流程(二)

    日期:

    在ngx_http_process_request_line函数中,解析完请求行之后,如果请求行的uri里面包含了域名部分,则将其保持在请求结构的headers_in成员的server字段,headers_in用来保存所有请求头,它的类型为ngx_http_headers_in_t: spanstyle=font-size:18px;typedefs...

  • nginx请求体读取

    日期:

    上节说到nginx核心本身不会主动读取请求体,这个工作是交给请求处理阶段的模块来做,但是nginx核心提供了ngx_http_read_client_request_body()接口来读取请求体,另外还提供了一个丢弃请求体的接口-ngx_http_discard_request_body(),在请求执行的各个阶段中...

  • nginx请求体读取(二)

    日期:

    2,丢弃请求体 一个模块想要主动的丢弃客户端发过的请求体,可以调用nginx核心提供的ngx_http_discard_request_body()接口,主动丢弃的原因可能有很多种,如模块的业务逻辑压根不需要请求体 ,客户端发送了过大的请求体,另外为了兼容http1.1协议的pipeline...

  • nginx location的管理以及查找

    日期:

    关于nginx代码解析,我师兄雕梁的博客( http://simohayha.javaeye.com )有一系列的文章可以阅读。我这里将只介绍他博客里没有关注到的或者讲述不详细的,但是我个人又认为是nginx里面比较重要的东西。在这一篇文章里,我将介绍nginx关于location的处理,大...

  • nginx subrequest的实现解析

    日期:

    大家都知道nginx里面有一个subrequest的概念,也就是子请求,它并不是http标准里面的概念,它是在当前请求中发起的一个新的请求,它拥有自己的ngx_http_request_t结构,uri和args。一般来说使用subrequest的效率可能会有些影响,因为它需要重新从server rewr...

  • 如何使用 Docker 快速配置数据科学开发环境?

    日期:

    数据科学开发环境配置起来让人头疼,会碰到包版本不一致、错误信息不熟悉和编译时间漫长等问题。这很容易让人垂头丧气,也使得迈入数据科学的这第一步十分艰难。而且这也是一个完全不常见的准入门槛。 还好,过去几年中出现了能够通过搭建孤立的环境来解决这...