设为首页 收藏本站
查看: 914|回复: 0

[经验分享] nginx内嵌变量

[复制链接]

尚未签到

发表于 2018-11-10 09:31:48 | 显示全部楼层 |阅读模式
FORWARD:http://tengine.taobao.org/nginx_docs/cn/docs/http/ngx_http_core_module.html#variables

  ngx_http_core_module模块支持内嵌变量,变量名与Apache服务器对应。 首先,这些变量可以表示客户端的请求头字段,诸如$http_user_agent、$http_cookie等等。 nginx也支持其他变量:

  $arg_name
  请求行中的name参数。
  $args
  请求行中参数字符串。
  $binary_remote_addr
  客户端IP地址的二进制形式,值的长度总是4字节。
  $body_bytes_sent
  nginx返回给客户端的字节数,不含响应头。
  $bytes_sent
  nginx返回给客户端的字节数(1.3.8, 1.2.5)。
  $connection
  连接的序列号(1.3.8, 1.2.5)。
  $content_length
  “Content-Length”请求头的值。
  $content_type
  “Content-Type”请求头的值。
  $cookie_name
  名为name的cookie。
  $document_root
  当前请求的root指令或alias指令的配置值。
  $document_uri
  与$uri相同。
  $host
  “Host”请求头的值,如果没有该请求头,则为与请求对应的虚拟主机的首要主机名。
  $hostname
  机器名称。
  $http_name
  任意请求头的值;变量名的后半部为转化为小写并且用下划线替代横线后的请求头名称。
  $https
  如果连接是SSL模块,返回“on”,否则返回空字符串。
  $is_args
  如果请求行带有参数,返回“?”,否则返回空字符串。
  $limit_rate
  允许设置此值来限制连接的传输速率。
  $msec
  当前时间,单位是秒,精度是毫秒。(1.3.9, 1.2.6)
  $nginx_version
  nginx版本号。
  $pid
  worker进程的PID。
  $query_string
  与$args相同。
  $realpath_root
  按root指令或alias指令算出的当前请求的绝对路径。其中的符号链接都会解析成真是文件路径。
  $remote_addr
  客户端IP地址。
  $remote_port
  客户端端口。
  $remote_user
  为基本用户认证提供的用户名。
  $request
  完整的原始请求行。
  $request_body
  请求正文。
  在由proxy_pass指令和 fastcgi_pass指令处理的路径中, 这个变量值可用。
  $request_body_file
  请求正文的临时文件名。
  处理完成时,临时文件将被删除。 如果希望总是将请求正文写入文件,需要开启client_body_in_file_only。 如果在被代理的请求或FastCGI请求中传递临时文件名,就应该禁止传递请求正文本身。 使用proxy_pass_request_body off指令 和fastcgi_pass_request_body off指令 分别禁止在代理和FastCGI中传递请求正文。
  $request_completion
  请求完成时返回“OK”,否则返回空字符串。
  $request_filename
  基于root指令或alias指令,以及请求URI,得到的当前请求的文件路径。
  $request_method
  HTTP方法,通常为“GET”或者“POST”。
  $request_time
  请求处理的时间,单位为秒,精度是毫秒(1.3.9, 1.2.6);请求处理时间从由客户端接收到第一个字节开始计算。
  $request_uri
  完整的原始请求行(带参数)。
  $scheme
  请求协议类型,为“http”或“https”。
  $sent_http_name
  任意的响应头字段的值。 变量名的后半部为转化为小写并且用下划线替代横线后的响应头名称。
  $server_addr
  接受请求的服务器地址。
  为计算这个值,通常需要进行一次系统调用。为了避免系统调用,必须指定listen指令 的地址,并且使用bind参数。
  $server_name
  接受请求的虚拟主机的首要主机名。
  $server_port
  接受请求的虚拟主机的端口。
  $server_protocol
  请求协议,通常为“HTTP/1.0”或“HTTP/1.1”。
  $status
  响应状态码。
  $tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd, $tcpinfo_rcv_space
  客户端TCP连接的信息,在支持套接字选项TCP_INFO的系统中可用。
  $uri
  当前请求规范化以后的URI。

nginx.conf 这里不是用于做ELK收集日志
  

user www-data;  
worker_processes auto;
  
pid /run/nginx.pid;
  

  
events {
  worker_connections 768;
  
}
  

  
http {
  

  sendfile on;
  tcp_nopush on;
  tcp_nodelay on;
  keepalive_timeout 65;
  types_hash_max_size 2048;
  

  include /etc/nginx/mime.types;
  default_type application/octet-stream;
  

  log_format logstash_json '{ "timestamp": "$time_local", '
  '"host": "$host", '
  '"remote_addr": "$remote_addr", '
  '"remote_user": "$remote_user", '
  '"body_bytes_sent": "$body_bytes_sent", '
  '"request_time": "$request_time", '
  '"status": "$status", '
  '"args": "$args", '
  '"request": "$request", '
  '"request_method": "$request_method", '
  '"http_referrer": "$http_referer", '
  '"document_uri": "$document_uri", '
  '"body_bytes_sent":"$body_bytes_sent", '
  '"bytes_sent":"$bytes_sent", '
  '"http_x_forwarded_for": "$http_x_forwarded_for", '
  '"http_user_agent": "$http_user_agent" }';
  access_log /var/log/nginx/access.log logstash_json;
  error_log /var/log/nginx/error.log;
  

  gzip on;
  gzip_disable "msie6";
  

  include /etc/nginx/conf.d/*.conf;
  include /etc/nginx/sites-enabled/*;
  
}
  

# tail -1 access.log  
{ "timestamp": "28/Dec/2017:15:05:17 +0800", "host": "www.weiops.com", "remote_addr": "124.204.59.157", "remote_user": "-", "body_bytes_sent": "209", "request_time": "0.000", "status": "404", "args": "name=zuowenhong", "request": "GET /index?name=zuowenhong HTTP/1.1", "request_method": "GET", "http_referrer": "-", "document_uri": "/index", "body_bytes_sent":"209", "bytes_sent":"404", "http_x_forwarded_for": "-", "http_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36" }



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-633113-1-1.html 上篇帖子: Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间介绍 下篇帖子: Nginx 教程 #2:性能
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表