欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

nginx中http核心模块的配置指令4

程序员文章站 2024-02-21 22:16:34
...

接上篇

  1. server_tokens on | off:配置是否显示nginx服务器的版本等信息,默认为on

  2. tcp_nodelay on | off:配置是否启用TCP中的TCP_NODELAY选项,该选项只有在TCP连接为keep-alive时生效,默认为on,关于TCP_NODELAY的解释如下:

    TCP_NODELAY和TCP_CORK基本上控制了包的“Nagle化”,这里我们主要讲TCP_NODELAY.Nagle化在这里的含义是采用Nagle算法把较小的包组装为更大的帧。JohnNagle是Nagle算法的发明人,后者就是用他的名字来命名的,他在1984年首次用这种方法来尝试解决福特汽车公司的网络拥塞问题(欲了解详情请参看IETF RFC 896)。他解决的问题就是所谓的silly window syndrome,中文称“愚蠢窗口症候群”,具体含义是,因为普遍终端应用程序每产生一次击键操作就会发送一个包,而典型情况下一个包会拥有一个字节的数据载荷以及40个字节长的包头,于是产生4000%的过载,很轻易地就能令网络发生拥塞,。Nagle化后来成了一种标准并且立即在因特网上得以实现。它现在已经成为缺省配置了,但在我们看来,有些场合下把这一选项关掉也是合乎需要的。例如在需要及时响应的场景中,我们就可以禁用该选项,让TCP的包尽快发送出去,并尽快获取响应消息。

  3. tcp_nopush on | off:配置是否启用TCP的TCP_NOPUSH选项(FreeBSD系统)或者TCP_CORK选项(Linux系统),该选项只有在启用sendfile选项时才生效,一般情况下,在TCP交互的过程中,当应用程序接收到数据包后马上传送出去,不等待,而ect_cork选项是数据包不会马上传送出去,而是等到数据包最大时,再一次性传送,这样有助于解决网络堵塞,该选项于tcp_nodelay互斥

  4. try_files file ... uri | file ... =code:检查设置的指定顺序的文件或目录是否存在,返回第一个存在的文件,如果指定的文件或目录都不存在,则会产生一个内部请求到配置的uri,具体配置见如下例子:

    location / {
    	try_files $uri $uri/ @wordpress;
    }
    
    location ~ \.php$ {
    	try_files $uri @wordpress;
    
    	fastcgi_pass ...;
    
    	fastcgi_param SCRIPT_FILENAME /path/to$fastcgi_script_name;
    	... other fastcgi_param's
    }
    
    location @wordpress {
    	fastcgi_pass ...;
    
    	fastcgi_param SCRIPT_FILENAME /path/to/index.php;
    	... other fastcgi_param's
    }
    
  5. types { ... }:配置文件类型和MIME type的对应关系,默认为

    types {
    	text/html  html;
    	image/gif  gif;
    	image/jpeg jpg;
    }
    
  6. ngx_http_core_module模块的内置变量:

    • $arg_name:请求行中的参数name
    • $agrs:请求行中的arguments
    • $binary_remote_addr:客户端的地址的二进制表示形式,4个字节
    • $body_bytes_sent:发送到客户端的字节数,不包括消息头
    • $bytes_sent:发送到客户端的字节数
    • $connection:连接的***
    • $connection_requests:一个连接的当前的请求数
    • $content_length:”Content-Length”消息头的值
    • $content_type:”Content-Type”消息头的值
    • $cookie_name:cookie的名称
    • $document_root:root或alias指令设置的值
    • $document_uri:同$uri
    • $host:按照如下顺序获取-请求行中的host name、请求头中的“Host”的值、匹配请求的server name
    • $hostname:主机名称
    • $http_name
    • $https:如果启用了https,则值为on,否则为空
    • $is_args:如果有查询参数则值为“?”,否则为空
    • $limit_rate
    • $msec:当前时间的微秒形式
    • $nginx_version
    • $pid
    • $pipe
    • $proxy_protocol_addr:代理协议头中的客户端的地址
    • $query_string:请求查询参数,同$agrs
    • $realpath_root:root或alias对应的绝对路径
    • $remote_addr:客户端的地址
    • $remote_port:客户端的端口
    • $remote_user:基本认证中的用户名
    • $request:完成的请求行的值
    • $request_body:请求的消息体
    • $request_body_file:请求的消息体对应的临时文件,请求结束后该文件需要删除
    • $request_completion:如果一个请求结束了则返回“OK”,否则为空
    • $request_filename:请求的文件名称
    • $request_length:请求的消息的长度包括消息头和消息体
    • $request_method:请求的方法
    • $request_time:请求处理的时间(包括微秒)
    • $request_uri:原始的请求URI
    • $scheme:http|https
    • $sent_http_name
    • $server_addr
    • $server_name
    • $server_port
    • $server_protocol
    • $status
    • $tcpinfo_rtt
    • $time_iso8601
    • $time_local
    • $uri

转载于:https://my.oschina.net/louxin/blog/502543