返回顶部

随笔分类 -  nginx

摘要:$request_uri比$docuemnt_uri多了请求的参数。 主要用来针对请求的uri中的参数进行控制。 示例: 阅读全文
posted @ 2019-05-09 11:08 御用闲人 阅读(9993) 评论(0) 推荐(0) 编辑
摘要:这就用到了变量$document_uri,根据前面所学内容,该变量等价于$uri,其实也等价于location匹配。 示例1: 示例2: 示例3: 阅读全文
posted @ 2019-05-09 11:04 御用闲人 阅读(2293) 评论(0) 推荐(0) 编辑
摘要:在生产环境中,我们会对某些特殊的请求进行限制,比如对网站的后台进行限制访问。 这就用到了location配置。 示例1: 示例2: 示例3: 阅读全文
posted @ 2019-05-09 10:57 御用闲人 阅读(1339) 评论(0) 推荐(0) 编辑
摘要:Nginx的deny和allow指令是由ngx_http_access_module模块提供,Nginx安装默认内置了该模块。 除非在安装时有指定 --without-http_access_module。 语法: 示例: 阅读全文
posted @ 2019-05-09 10:53 御用闲人 阅读(20440) 评论(0) 推荐(0) 编辑
摘要:Nginx通过upstream和proxy_pass实现了负载均衡。本质上也是Nginx的反向代理功能,只不过后端的server为多个。 案例一(简单的轮询): 案例二(带权重轮询+ip_hash算法): 案例三(upstream其他配置): 案例四(根据不同的uri): 案例五(根据不同的目录): 阅读全文
posted @ 2019-05-09 10:46 御用闲人 阅读(383) 评论(0) 推荐(0) 编辑
摘要:我们应该从两个角度来看http的缓存:缓存控制 和 缓存校验。缓存控制:控制缓存的开关,用于标识请求或访问中是否开启了缓存,使用了什么样的存方式。缓存校验:如何校验缓存,缓存的有效期,如何确定缓存是最新的。 一、缓存控制 http中控制缓存开关的字段有两个:Pragma 和 Cache-Contro 阅读全文
posted @ 2019-05-08 17:39 御用闲人 阅读(346) 评论(0) 推荐(1) 编辑
摘要:proxy_cache将从C上获取到的数据根据预设规则存放到B上(内存+磁盘)留着备用,A请求B时,B会把缓存的这些数据直接给A,而不需要再去向C去获取。 proxy_cache相关功能生效的前提是,需要设置proxy_buffering on; proxy_cache主要参数: proxy_cac 阅读全文
posted @ 2019-05-08 15:32 御用闲人 阅读(14520) 评论(0) 推荐(0) 编辑
摘要:proxy_buffering主要是实现被代理服务器的数据和客户端的请求异步。 为了方便理解,我们定义三个角色,A为客户端,B为代理服务器,C为被代理服务器。 当proxy_buffering开启,A发起请求到B,B再到C,C反馈的数据先到B的buffer上,然后B会根据proxy_busy_buf 阅读全文
posted @ 2019-05-08 14:30 御用闲人 阅读(22045) 评论(0) 推荐(2) 编辑
摘要:proxy_redirect 该指令用来修改被代理服务器返回的响应头中的Location头域和“refresh”头域。 语法结构为: 错误示例: 当请求的链接为 http://www.xxx.com/aming 结果会返回301,定向到了 http://www.xxx.com:8080/aming/ 阅读全文
posted @ 2019-05-08 14:23 御用闲人 阅读(3242) 评论(0) 推荐(0) 编辑
摘要:proxy_set_header用来设定被代理服务器接收到的header信息。 如果不设置proxy_set_header,则默认host的值为proxy_pass后面跟的那个域名或者IP(一般写IP) 用来设置被代理端接收到的远程客户端IP,如果不设置,则header信息中并不会透传远程真实客户端 阅读全文
posted @ 2019-05-08 14:15 御用闲人 阅读(28862) 评论(0) 推荐(1) 编辑
摘要:格式很简单: proxy_pass URL; 其中URL包含:传输协议(http://, https://等)、主机名(域名或者IP:PORT)、uri。 示例如下: 对于proxy_pass的配置有几种情况需要注意: 总结: 阅读全文
posted @ 2019-05-08 14:08 御用闲人 阅读(26739) 评论(3) 推荐(1) 编辑
摘要:Nginx反向代理在生产环境中使用很多的。 场景1: 域名没有备案,可以把域名解析到香港一台云主机上,在香港云主机做个代理,而网站数据是在大陆的服务器上。 阅读全文
posted @ 2019-05-08 13:59 御用闲人 阅读(562) 评论(0) 推荐(0) 编辑
摘要:nginx location语法规则:location [=|~|~*|^~] /uri/ { … } nginx的location匹配的变量是$uri 规则优先级 规则示例 阅读全文
posted @ 2019-05-08 13:52 御用闲人 阅读(907) 评论(0) 推荐(0) 编辑
摘要:需求场景:从以下俩张图可以比较直观的理解正向代理的作用(在其他文章中会表示为“http代理”,注意当前文档的配置不支持https代理) Nginx正向代理配置文件: Nginx正向代理配置执行说明: resolver default_server proxy_pass 阅读全文
posted @ 2019-05-06 16:16 御用闲人 阅读(1753) 评论(0) 推荐(0) 编辑
摘要:本部分内容为nginx生产环境中使用的场景示例。 域名跳转(域名重定向) 防盗链: 伪静态: rewrite多个条件的并且: 阅读全文
posted @ 2019-05-05 17:36 御用闲人 阅读(930) 评论(0) 推荐(0) 编辑
摘要:变量 说明 $args 请求中的参数,如www.123.com/1.php?a=1&b=2的$args就是a=1&b=2 $content_length HTTP请求信息里的"Content-Length" $conten_type HTTP请求信息里的"Content-Type" $documen 阅读全文
posted @ 2019-05-05 17:25 御用闲人 阅读(4656) 评论(0) 推荐(0) 编辑
摘要:两个指令用法相同,但含义不同,需要放到rewrite规则的末尾,用来控制重写后的链接是否继续被nginx配置执行(主要是rewrite、return指令)。 当我们请求1.html时,最终访问到的是3.html,两条rewrite规则先后执行。 break和last在location {}外部: 当 阅读全文
posted @ 2019-05-05 17:23 御用闲人 阅读(688) 评论(0) 推荐(0) 编辑
摘要:格式:rewrite regex replacement [flag] * rewrite配置可以在server、location以及if配置段内生效 * regex是用于匹配URI的正则表达式,其不会匹配到$host(域名) * replacement是目标跳转的URI,可以以http://或者h 阅读全文
posted @ 2019-05-05 17:07 御用闲人 阅读(710) 评论(0) 推荐(0) 编辑
摘要:该指令一般用于对请求的客户端直接返回响应状态码。在该作用域内return后面的所有nginx配置都是无效的。 可以使用在server、location以及if配置中。 除了支持跟状态码,还可以跟字符串或者url链接。 直接返回状态码: 返回字符串: 返回URL : 实战示例: 阅读全文
posted @ 2019-05-05 17:02 御用闲人 阅读(25897) 评论(0) 推荐(3) 编辑
摘要:条件举例: 示例1: 示例2: 示例3: 示例4: 阅读全文
posted @ 2019-05-05 16:59 御用闲人 阅读(1038) 评论(0) 推荐(0) 编辑