Nginx 全局变量
$args 此变量与请求行中的参数相等
$content_length 等于请求行的“Content_Length”的值。
$content_type 等同与请求头部的”Content_Type”的值
$document_root 等同于当前请求的root指令指定的值
$document_uri 与$uri一样
$host 与请求头部中“Host”行指定的值或是request到达的server的名字(没有Host行)一样
$limit_rate 允许限制的连接速率
$request_method 等同于request的method,通常是“GET”或“POST”
$remote_addr 客户端ip
$remote_port 客户端port
$remote_user 等同于用户名,由ngx_http_auth_basic_module认证
$request_filename 当前请求的文件的路径名,由root或alias和URI request组合而成
$request_body_file
$request_uri 含有参数的完整的初始URI
$query_string 与$args一样
$server_protocol 等同于request的协议,使用“HTTP/1.0”或“HTTP/1.1”
$server_addr request到达的server的ip,一般获得此变量的值的目的是进行系统调用。为了避免系统调用,有必要在listen指令中指明ip,并使用bind参数。
$server_name 请求到达的服务器名
$server_port 请求到达的服务器的端口号
$uri 等同于当前request中的URI,可不同于初始值,例如内部重定向时或使用index
PS:对待不同的需求配置也不尽相同。
分享一下个人遇到的一些配置需求。
1、查看从Nginx到被代理到的服务器的请求状况。
log_format main '[$time_local] - $remote_addr - $remote_user "$request" ' '[$status - $body_bytes_sent - "$http_referer" - "$http_user_agent"]'
'"$http_x_forwarded_for" - [ $upstream_addr - $upstream_status -- $upstream_response_time]';
上面的配置看似很普通,但是它整合了,请求发起端到Nginx的请求IP、参数、时间等,以及包含了从Nginx到被代理服务器的请求,这项请求包含了请求状态、请求的IP、请求响应时间。
2、配置要求cache有效期的限制。[总是有效]。
我们知道对于Nginx的cache有效期作用,如果一个cache在有效期外,没有被访问,这个资源将会从cache目录清除。
但是为了应对永久cache,似乎暂时没有解决方案[很久没看nginx动态了,个人偏见]。
所以就要通过调长有效期来做,经过尝试,发现有效期的设置最大为68y[测试标准,配置后,是否能通过配置测试。]。
proxy_temp_path /usr/local/nginx/proxy_temp 1 2;
proxy_cache_path /usr/local/nginx/proxy_cache/musics levels=1:2 keys_zone=music_cache:100m inactive=68y max_size=300g;
后续中。。