nginx 各参数翻译,作用

$arg_PARAMETER #这个变量包含GET请求中,如果有变量PARAMETER时的值。

$args #这个变量等于请求行中(GET请求)的参数,例如foo=123&bar=blahblah;

$binary_remote_addr #二进制的客户地址。

$body_bytes_sent #响应时送出的body字节数数量。即使连接中断,这个数据也是精确的。

$content_length #请求头中的Content-length字段。

$content_type #请求头中的Content-Type字段。

$cookie_COOKIE #cookie COOKIE变量的值

$document_root #当前请求在root指令中指定的值。

$document_uri #与$uri相同。

$host #请求主机头字段,否则为服务器名称。

$hostname #Set to the machine’s hostname as returned by gethostname

$http_HEADER

$is_args #如果有$args参数,这个变量等于”?”,否则等于”",空值。

$http_user_agent #客户端agent信息

$http_cookie #客户端cookie信息

$limit_rate #这个变量可以限制连接速率。

$query_string #与$args相同。

$request_body_file #客户端请求主体信息的临时文件名。

$request_method #客户端请求的动作,通常为GET或POST。

$remote_addr #客户端的IP地址。

$remote_port #客户端的端口。

$remote_user #已经经过Auth Basic Module验证的用户名。

$request_completion #如果请求结束,设置为OK. 当请求未结束或如果该请求不是请求链串的最后一个时,为空(Empty)。

$request_method #GET或POST

$request_filename #当前请求的文件路径,由root或alias指令与URI请求生成。

$request_uri #包含请求参数的原始URI,不包含主机名,如:”/foo/bar.php?arg=baz”。不能修改。

$scheme #HTTP方法(如http,https)。

$server_protocol #请求使用的协议,通常是HTTP/1.0或HTTP/1.1。

$server_addr #服务器地址,在完成一次系统调用后可以确定这个值。

$server_name #服务器名称。

$server_port #请求到达服务器的端口号。

$uri #不带请求参数的当前URI,$uri不包含主机名,如”/foo/bar.html”。该值有可能和$request_uri 不一致。$request_uri是浏览器发过来的值。该值是rewrite后的值。例如做了internal redirects后。

今天在给某网站写rewrite重定向规则时,碰到了这个关于 重定向的参数处理 问题。默认的情况下,Nginx在进行rewrite后都会自动添加上旧地址中的参数部分,而这对于重定向到的新地址来说可能是多余。虽然这也不会对重定向的结果造成多少影响,但当你注意到新地址中包含有多余的“ ?xxx=xxx ”时,心里总还是会觉得不爽。那么该如何来处理这部分的内容呢?看了下面两个简单的例子你就会明白了。

例如:
http://example.com/test.php?para=xxx 重定向到 http://example.com/new
若按照默认的写法:rewrite ^/test.php(.*) /new permanent;
重定向后的结果是: http://example.com/new?para=xxx
如果改写成:rewrite ^/test.php(.*) /new? permanent;
那结果就是: http://example.com/new

所以,关键点就在于“?”这个尾缀。假如又想保留某个特定的参数,那又该如何呢?可以利用Nginx本身就带有的$arg_PARAMETER参数来实现。

例如:
http://example.com/test.php?para=xxx&p=xx 重写向到 http://example.com/new?p=xx
可以写成:rewrite  ^/test.php   /new?p=$arg_p?  permanent;

只求结果的朋友可以直接忽略前面的内容, 看这里

rewrite  ^/test.php  /new  permanent;       //重写向带参数的地址

rewrite  ^/test.php  /new?  permanent;      //重定向后不带参数

rewrite  ^/test.php   /new?id=$arg_id?  permanent;    //重定向后带指定的参数

1.采用 nginx 的的ip_ hash 机制 Nginx 的ip_ hash 技术能够将某个ip 的请求定向到同一台后端web机器 ,这样一来这个ip 下的客户端和某个后端 web机器就能建立起稳固的session.ip_ hash 机制能够让某一客户机在相当长的一段时间内只访问固定的后端的某台真实的web服务器,这样会话就会得以保持,在网站页面进行login的时候就不会在后面的web服务器之间跳来跳去了,也... 相信大家也和我一样,2020年的春节过得非常特别。新型冠状病毒不仅对国家还是对社会以及对我们的个人都有很大影响! 很多小伙伴心里肯定想着由于种种原因,心里开始蠢蠢欲动了…???? 笔者通过平时面试总结以及面试别人常提的问题,结合自己认为非常重要的前端各技术栈的知识点,总结了这篇 高级前端面试。让需要的小伙伴所阅读,让不在大厂的小伙伴提前了解大厂前端面试官常问的各种 常见 前端问题。 文章有点长,请各位小伙... 当channelCode不为空且channelCode不等于default时,进行域名 重定向 ,否则直接访问页面资源 location ^~ /abc{ set $flag "Y"; if ($request_uri !~ "channelCode=default"){ set $flag "N"; if ($request_uri !~ "channelCode"){ set $flag "Y"; if ($flag != "Y"){ rewrite ^(.*)$ 文章目录linux命令docker安装docker服务的启动、重启、关闭命令docker 命令docker和虚拟机比较docker 容器数据卷DockerFileCMD/ENTRYPOINT命令的区别docker 配置 tomcatdocker 配置 mysqldocker 配置 redis本地镜像发布到阿里云 linux命令 mv:既可以移动文件或文件夹,又可以重命名 文件重命名 eg1: 将目录(或文件)A 重命名为 B (如有B文件将覆盖B文件) mv A B $ arg s //请求 的的 参数 名,即“?”后面的 arg _name= arg _value形式的 arg _name $ arg _PARAMETER //这是 参数 的一个匹配 模式 ,PARAMETER为具体的 参数 名,$ arg _PARAMETER就表示获取具体的 参数 值,例如上面的$ arg _name就是获取url name的值 $is_ arg s //判断url是否带 参数 ,如果带,则返回一个?,否则返回一个空字符串 dockerfile FROM ruby:2.5-alpine RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \ && apk add gcc g++ libc-dev wget vim openssl-dev make linux-headers bash \ && rm -rf /var/c