相关动态
Nginx(三)
2024-12-30 04:47

模块:Module ngx_http_core_module

Syntax: ... [[]] ;Default:—Context:, , ,
 

访问一个不存在的页面

 
 
 

模块:Core functionality

Syntax: [];Default:
error_log logs/error.log error;
Context:, , , , ,
 
 
 
 
 
 

模块:https://nginx.org/en/docs/http/ngx_http_core_module.html#try_files

Syntax:try_files file … uri; try_files file … =code;Default:—Context:server, location

try_files 会按顺序检查文件是否存在,返回第一个找到的文件或文件夹(结尾加斜线表示为文件夹,如果所有文件或文件夹都找不到,会进行一个内部重定向到最后一个参数。只有最后一个参数可以引起一个内部重定向,之前的参数只设置内部URI的指向。最后一个参数是回退URI且必须存在,否则会出现内部500错误

 
 
 
 
 

长连接:keepalive

模块:https://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_requests

限制了一个长连接上可以处理的请求数量 或 在一次长连接上所允许请求的资源的最大数量,默认为1000次

Syntax:keepalive_requests number;Default:keepalive_requests 1000;Context:http, server, location

模块:https://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_time

限制对一个连接中请求处理的最长时间,到时间后续的再有新的请求会断开连接,默认1h

Syntax:keepalive_time time;Default:keepalive_time 1h;Context:http, server, location

模块:https://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_timeout

设置保持空闲的连接超时时长,0表示禁止长连接,默认为75s;通常配置在http块作为站点全局配置

Syntax:keepalive_timeout timeout [header_timeout];Default:keepalive_timeout 75s;Context:http, server, location
 
 

模块:https://nginx.org/en/docs/http/ngx_http_autoindex_module.html

处理以斜杠字符 “/” 结尾的请求,并生成目录列表,可以做为下载服务配置使用。

自动文件索引功能,默认off

Syntax:autoindex on | off;Default:autoindex off;Context:http, server, location

计算文件大小,默认on;on为精确显示,单位bytes,off为估计大小,单位K,M

Syntax:autoindex_exact_size on | off;Default:autoindex_exact_size on;Context:http, server, location

索引界面显示风格,默认html

Syntax:autoindex_format html | xml | json | jsonp;Default:autoindex_format html;Context:http, server, location

on显示本机时间,而非GMT格林威治时间,默认off

Syntax:autoindex_localtime on | off;Default:autoindex_localtime off;Context:http, server, location

相关参数

 
 
 
 

模块:http://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size

Syntax:client_max_body_size size;Default:client_max_body_size 1m;Context:http, server, location

模块:http://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_buffer_size

Syntax:client_body_buffer_size size;Default:client_body_buffer_size 8k|16k;Context:http, server, location

模块:http://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_temp_path

Syntax:client_body_temp_path path [level1 [level2 [level3]]];Default:client_body_temp_path client_body_temp;Context:http, server, location
 
 

限制某个用户在一定时间内能产生的http请求或限制某个用户的下载速度,防止个别用户对资源消耗过多,导致其它用户受影响。

启用限速后,如果超过指定的阈值,则默认提示503过载保护

限制用户下载资源的速度

模块:http://nginx.org/en/docs/http/ngx_http_core_module.html#limit_rate

Syntax:limit_rate rate;Default:limit_rate 0;Context:http, server, location, if in location

模块:http://nginx.org/en/docs/http/ngx_http_core_module.html#limit_rate_after

Syntax:limit_rate_after size;Default:limit_rate_after 0;Context:http, server, location, if in location
 
 

限制同一个IP发起的请求频率

模块:http://nginx.org/en/docs/http/ngx_http_limit_req_module.html

Syntax:limit_req_zone key zone=name:size rate=rate [sync];Default:—Context:http
Syntax:limit_req zone=name [burst=number] [nodelay | delay=number];Default:—Context:http, server, location
Syntax:limit_req_status code;Default:limit_req_status 503;Context:http, server, location
 

当快速刷新www.wenzi.com时,会报错503

限制同一个IP的同时发起的最大并发连接数

模块:http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html

Syntax:limit_conn_zone key zone=name:size;Default:—Context:http
Syntax:limit_conn zone number;Default:—Context:http, server, location
 
 
  • 当下载超过100M则限制下载速度为500k
  • 限制web服务器请求数处理为1秒一个,触发值为5、限制用户仅可同时下载2个文件。
  • 如果同时下载超过2个资源,则返回提示 “请联系管理员进行会员充值” 并跳转到其他页面
 
 
 

favicon.ico 文件是浏览器收藏网址时显示的图标,当客户端使用浏览器问页面时,浏览器会自己主动发起请求获取页面的favicon.ico文件,但是当浏览器请求的favicon.ico文件不存在时,服务器会记录404日志,而且浏览器也会显示404报错

 
 

此功能依靠PCRE,编译之前要安装PCRE库

可实现常用网站的URL重写,但客户端无需修改书签、链接,仍可正常访问

隐藏源网站链接信息,实现跳转,提高安全

URL伪静态化,将动态页面显示为静态页面的一种技术

用于条件匹配判断,根据判断结果选择不同的nginx配置

仅支持单次判断,不支持if else 或 if elif 多重判断

Syntax:if (condition) { … }Default:—Context:,

变量与表达式之间符号

使用正则表达式对变量进行匹配,匹配成功true,匹配失败为false

若 $变量 的值为空字符串或0,则if认为条件判断结果为false,其它情况为true

=变量和字符串是否相等,相等true,不等false!=变量和字符串是否 不 相等,不相等true,相等false~正则匹配,区分大小写,满足条件true,不满足条件false!~正则匹配,区分大小写,不 满足条件true,满足条件false~*正则匹配,不 区分大小写,满足条件true,不满足条件false!~*正则匹配,不 区分大小写,不 满足条件true,满足条件false
-e存在(包含文件、目录、软链接)!-e不存在(包含文件、目录、软链接)-f文件存在!-f文件不存在-d目录存在!-d目录不存在-x可执行!-x不可执行
 
 
 

指定key并给其定义一个变量,变量可以调用Nginx内置变量赋值给key。

value可以是text + variable 两者结合

Syntax:set $variable value;Default:—Context:, ,
 
 

中断当前相同作用域(location)中的其它nginx配置,与break处于同一作用域的nginx配置中,位于break前面的配置生效,位于后面的 ngx_http_rewrite_module 模块中的指令将不再执行

nginx服务器根据配置处理请求过程中遇到break时,回到上一层作用域继续向下读取配置

如果break指令在location块中,break后面的指令还会继续执行,只是不执行 ngx_http_rewrite_module 模块的指令,其它指令还会执行

Syntax:break;Default:—Context:, ,
 
 

return用于完成对请求的处理,并直接向客户端返回响应状态码。

可使用 301/302 + 新URL 实现重定向;403/500等 + 提示文本 实现指定提示文本内容

处于此指令后的所有配置都不被执行

Syntax:return code [text]; return code URL;return URL;Default:—Context:, ,

Nginx(三)

 
 
 

rewrite将用户请求的URI基于regex所描述的模式进行检查,匹配到时将其替换为表达式指定的新的URI

如果在同一级配置块中存在多个rewrite规则,那么会自下而下逐个检查;被某条件规则替换完成后,会重新一轮的替换检查,隐含有循环机制,但不超过10次;如果超过,提示500响应码,[flag]所表示的标志位用于控制此循环机制

如果替换后的URL是以http://或https://开头,则替换结果会直接以重定向返回给客户端, 即永久重定向301

分组机制(.*)只会捕获URI

Syntax:rewrite regex replacement [flag];Default:—Context:, ,

  • :一个正则表达式,用于匹配请求的 URI。
  • :一个字符串,用于替换匹配到的 URI。可以使用正则表达式捕获的子模式(通过 , 等引用)。
  • :可选的标志,控制重写的行为。常见的标志有
    • :如果重写后的 URI 仍然匹配当前 块,Nginx 将继续搜索 块并再次重写。不建议在location中使用。
    • :停止重写过程,不再搜索其他 规则。建议在location中使用。
    • :返回一个临时的重定向(HTTP 302)响应。
    • :返回一个永久的重定向(HTTP 301)响应。

正则表达式格式

 

flag

 
 

测试

 

永久与临时重定向

客户端无需改变保存的旧链接,可实现访问旧链接跳转到新的地址。

都会导致客户端重新发起请求,客户端可以看到链接地址会发生变化。

301 永久重定向

域名永久型调整,即域名永远跳转至另外一个新的域名,之前的域名再也不使用,跳转记录可以缓存到客户端浏览器。

永久重定向会缓存DNS解析记录,浏览器控制台-网络-可看到from disk cache,即使nginx无法访问,浏览器也会利用缓存进行重定向。

 

浏览器访问 http://www.wenzi.com/1.html 时会自动跳转到 http://www.wenzi.com/2.html,浏览器地址栏可看到地址变化为 http://www.wenzi.com/2.html 。当再次访问 http://www.wenzi.com/1.html 时,通过控制台可看到下图

302 临时重定向

域名临时重定向,告诉浏览器域名不是固定重定向到当前目标域名,后期可能随时会更改,因此浏览器不会缓存当前域名的解析记录。

当nginx服务器无法访问时,浏览器不能利用缓存,而导致重定向失败

 

浏览器访问 http://www.wenzi.com/1.html 时会自动跳转到 http://www.wenzi.com/2.html,浏览器地址栏可看到地址变化为 http://www.wenzi.com/2.html 。当再次访问 http://www.wenzi.com/1.html 时,通过控制台可看到下图

对比

最大区别:301 永久重定向,浏览器会永久缓存重定向的DNS解析记录,而301 临时重定向,浏览器不会缓存重定向的DNS解析记录。

redirect:302,旧网站无影响,新网站会有排名,跳转不会缓存

permanent:301,旧网站排名会被清空,新跳转网站继承原网站排名,跳转会缓存,主要用于旧域名废弃和新域名启用时使用。

 
 

Web网站的登录页面通常都会使用https加密传输的,加密数据以保障数据的安全,HTTPS能够加密信息,以免敏感信息被第三方获取。

https 由 http + ssl/tls 构成。在http上又加了一层处理加密信息的模块,传输的信息都是经过tls加密后的信息。

1、客户端发起HTTPS请求

用户在浏览器里输入一个https网址,然后连接到服务器的443端口

2、服务端的配置

采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面。这套证书其实就是一对公钥和私钥

3、传送服务器的证书给客户端

证书里其实就是公钥,并且还包含了很多信息,如证书的颁发机构,过期时间等等

4、客户端解析验证服务器证书

这部分工作是由客户端的TLS来完成的,首先会验证公钥是否有效,比如:颁发机构,过期时间等 等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一 个随机值。然后用证书中公钥对该随机值进行非对称加密

5、客户端将加密信息传送服务器

这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端 的通信就可以通过这个随机值来进行加密解密了

6、服务端解密信息

服务端将客户端发送过来的加密信息用服务器私钥解密后,得到了客户端传过来的随机值

7、服务器加密信息并发送信息

服务器将数据利用随机值进行对称加密,再发送给客户端

8、客户端接收并解密信息

客户端用之前生成的随机值解密服务段传过来的数据,于是获取了解密后的内容

模块:Module ngx_http_ssl_module

yum安装默认开启;编译安装需要指定编译参数 --with-http-ssl-module开启

 
 
 
 
 

测试通过浏览器访问 https://www.wenzi.com ,因为是自签名,所以不被浏览器识别。点击高级,继续访问即可正常访问

点击左上方 不安全—证书无效,即可看到证书信息

    以上就是本篇文章【Nginx(三)】的全部内容了,欢迎阅览 ! 文章地址:http://ww.kub2b.com/news/15929.html
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站 http://ww.kub2b.com/mobile/ , 查看更多   
最新文章
Shams:如果火箭季后赛早早被淘汰 他们很可能会积极追求杜兰特
直播吧04月17日讯 今日ESPN名记Shams Charania做客节目《NBA COUNTDOWN》中谈到了火箭追逐KD的可能性。Shams表示:“如果球队能
手机是什么时候出现的手机是哪个国家发明的「手机是什么时候出现的」
手机,这个如今几乎人手一部的通讯工具,其发展历程漫长而有趣。要追溯其起源,我们需要回到上世纪初。一、早期探索阶段早在20世
再建新厂、增加注资、积极纳税 北京税企协同共建优质营商环境
4月16日,北京市税务局“民企显身手”系列媒体采访活动正式启动。此次活动以“政策落实有力度、服务升级有温度、营商环境有厚度
oppo手机里的记事本在哪里手机记事本在哪里「oppo手机里的记事本在哪里」
“盾牌”是古代作战时一种手持格挡,用以掩蔽身体,抵御敌方兵刃、矢石等兵器进攻的防御性兵械,呈长方形或圆形,盾的中央向外凸
个人业务利润降30%,3万亿规模宁波银行也有“烦恼”
文 | 刘振涛资本市场进入财报披露季,上市企业过去一年的成绩令市场高度关注,特别是市场“分红大户”——上市银行的成绩备受关
闽北从观光到沉浸 解锁旅游新体验
  中新网南平4月17日电 (记者 张丽君)依托核心景区武夷山,闽北南平凭借创新的文旅融合模式,实现了从传统观光游到沉浸式深度
重新定义奢华旅游,情绪价值比“钞能力”更重要
【文/观察者网 王勇 编辑/赵乾坤】新加坡“亚洲新闻台”日前报道称,越来越多的千禧一代、Z世代以及来自亚洲和中东等新兴市场的
最便宜的红米手机——红米7A红米手机预定「最便宜的红米手机——红米7A」
5.28号下午,在红米K20系列发布会上,出现了一款史上最便宜的红米手机——红米 7A,售价仅549元起,如此便宜的手机究竟配置如何呢
如何开启手机定位功能,确保精准定位与安全使用手机定位功能在哪里开启「如何开启手机定位功能,确保精准定位与安全使用」
检查手机设置:在设定中找到“隐私”或“位置服务”选项。对于不同品牌的手机,可能会有所不同。例如,iPhone 在设置中有明显的
华为一键测速手机测速「华为一键测速」
华为一键测速有了这款app你就可以实时了解自己的网速了,更为专业强大的技术支撑,还能直接查看网络的各方面信息,各位朋友们尽