nginx cm

nginx cm

Nginx服务

一、HTTP 属于应用层

  • 80端口对应的服务是Nginx,Apache服务
  • Nginx,Apache服务用的协议是http协议

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

HTTP工作在 TCP/IP协议体系中的TCP协议上,是一个基于 TCP/IP 通信协议来传递数据(HTML 文件、图片文件、查 询结果等)。

1、HTTP 工作原理

HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端(web服务端)发送的请求报文,这个请求报文包含了请求方法、URL协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或错误代码、服务器信息、响应头部和响应数据。 Web服务器有:Nginx,Apache服务器,IIS服务器(Internet Information Services)等。 Web服务器根据接收到的请求后,向客户端发送响应信息。 HTTP默认端口号为80,但是你也可以改为其他端口。 
CGI 通用网关接口(Common Gateway Interface/CGI)描述了客户端和服务器程序之间传输数据的一种标准,可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数据。CGI 程序可以用任何脚本语言或者是完全独立编程语言实现,只要这个语言可以在这个系统上运行 

2、HTTP 消息结构

HTTP是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。HTTP是无状态协议,意味着服务器不会保留关于客户端或请求的任何信息,每个请求都是独立的,即使是在持久连接(如Keep-Alive)的情况下也是如此。

一个HTTP"客户端"是一个应用程序(Web浏览器或其他任何客户端),通过连接到服务器达到向服务器发送一个或多个HTTP的请求的目的。

一个HTTP"服务器"同样也是一个应用程序(通常是一个Web服务,如Apache Web服务器或IIS服务器等),通过接收客户端的请求并向客户端发送HTTP响应数据。

HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。

3、客户端请求消息

HTTP 报文可以分为两类:请求报文(request message)和响应报文(response message),两者的基本报文结构相同。

客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成,下图给出了请求报文的一般格式。

4、服务器响应消息

HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。

在这里插入图片描述


实例

下面实例是一点典型的使用GET来传递数据的实例:

客户端请求:

# curl -v http://www.testpm.cn Connected to www.testpm.cn (47.244.247.240) port 80(#0)> GET /hello.txt HTTP/1.1 # 请求方式与版本协议。> User-Agent: curl/7.29.0 #用什么客户端访问> Host: www.testpm.cn #主机名,域名。主机和端口号,> Accept: */* #匹配什么文件类型,“*” 是通用匹配。匹配所有类型

服务端响应:

< HTTP/1.1 200 OK #请求返回的状态码< Server: nginx/1.16.0 #请求的服务和版本号< Date: Thu, 04 Jul 2019 08:19:40 GMT #当前时间,北京时间为GMT+8小时< Content-Type: text/plain #mime类型,test/plain:普通文本,比如image/png...、video< Content-Length: 12#内容的长度< Last-Modified: Thu, 04 Jul 2019 08:13:25 GMT #最后修改时间< Connection: keep-alive #是否支持长连接< ETag: "5d1db525-c"#标识,每次访问如果与最开始的值一样返回304否则校验不一致返回200< Accept-Ranges: bytes #接受的范围单位

输出结果:

hello world 
经典面试题(重点)

在浏览器地址栏键入 URL,按下回车之后会经历什么?

浏览器向 DNS 服务器请求解析该 URL 中域名对应的 IP 地址; 解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立 TCP 连接; 服务器发出读取文件的HTTP请求(URL 中域名后面部分对应的文件),(该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器); 服务器对浏览器请求作出响应,并把对应的HTML文本发送给浏览器; 释放TCP连接; 浏览器将HTML文档渲染并显示内容; 

5、HTTP 请求方法

  • 检查 Web 访问情况
  • curl -I ip地址 向指定的 IP 地址发送 HTTP 请求,仅获取响应的头部信息
  • **curl -v ip地址 **可以看网站的响应主体,展示与服务器之间的详细交互信息

根据HTTP标准,HTTP请求可以使用多种请求方法。

HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。 HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。 

以下是常见的 HTTP 请求方法(HTTP Request Methods) 及其核心作用、应用场景和特性总结:


1. GET

  • 用途获取资源(只读操作)。
  • 特点
    • 安全(Safe):不会修改服务器资源。
  • 示例
    • 访问网页:GET /index.html
    • 查询用户信息:GET /users/123
  • 注意
    • 参数通过 URL 传递(如 /users?id=123)。
    • 不应用于提交敏感数据(URL 可能被日志记录)。

2. POST

  • 用途提交数据(通常用于创建资源或触发操作)。
  • 示例
    • 提交表单:POST /login(提交用户名密码)。
    • 创建订单:POST /orders(提交订单数据)。

3. PUT

  • 用途替换或更新整个资源(需提供完整数据)。
  • 特点
    • 不安全(Non-Safe):修改资源。
  • 示例
    • 更新用户信息:PUT /users/123(提供完整的用户数据)。

4. DELETE

  • 用途删除指定资源
  • 特点
    • 不安全(Non-Safe):删除资源。
  • 示例
    • 删除文章:DELETE /posts/456

5. PATCH

  • 用途部分更新资源(仅提交需修改的字段)。
  • 特点
    • 不安全(Non-Safe):修改资源。

6. HEAD

  • 用途获取资源的元数据(如响应头,不返回响应体)。
  • 特点
    • 安全(Safe):不修改资源。
  • 示例
    • 检查资源是否存在:HEAD /files/report.pdf
    • 验证缓存有效性(通过 Last-ModifiedETag 头)。

7. OPTIONS

  • 用途查询服务器支持的请求方法
  • 示例
    • 获取 /users 支持的 HTTP 方法:OPTIONS /users
    • 响应头包含:Allow: GET, POST, HEAD

8. TRACE

  • 用途回显客户端请求(用于调试)。

9. CONNECT

  • 用途建立隧道连接(通常用于 HTTPS 代理)。
  • 示例
    • 代理服务器中转 HTTPS 请求:CONNECT example.com:443 HTTP/1.1

总结对比表
方法用途安全幂等请求体支持
GET获取资源✔️✔️
POST提交数据✔️
PUT替换或创建资源✔️✔️
DELETE删除资源✔️
PATCH部分更新资源✔️
HEAD获取元数据✔️✔️
OPTIONS查询支持的方法✔️✔️
TRACE回显请求(调试)✔️✔️
CONNECT建立隧道(如 HTTPS)✔️

核心概念

1. 安全性(Safe Methods)

  • 定义:请求不会修改服务器资源(如 GET、HEAD、OPTIONS)。
  • 意义:允许浏览器预加载或爬虫安全访问。

2. 幂等性(Idempotent Methods)

  • 定义:多次请求效果相同(如 GET、PUT、DELETE)。
  • 意义:网络超时后可安全重试。

掌握 HTTP 请求方法是构建高效、可靠 Web 应用和 API 的基础。正确使用方法可提升安全性、可维护性,并与 RESTful 设计原则保持一致。

6、HTTP 响应头信息

HTTP 响应字段(HTTP Response Headers)是服务器在返回 HTTP 响应时附加的元数据,用于向客户端(如浏览器)传递关于响应的附加信息。以下是常见的 HTTP 响应字段及其作用:


通用字段(General Headers)

  1. Cache-Control
    • 用途:控制缓存行为(如 public, private, max-age, no-cache)。
    • 示例:Cache-Control: max-age=3600(缓存 1 小时)。
  2. Connection
    • 用途:管理网络连接(如 keep-aliveclose)。
    • 示例:Connection: keep-alive(保持长连接)。
  3. Date
    • 用途:响应生成的日期和时间(GMT 格式)。
    • 示例:Date: Tue, 15 Aug 2023 12:00:00 GMT

响应字段(Response Headers)

  1. Status
    • 用途:显示 HTTP 状态码和状态短语(实际由协议行传递,非显式头字段)。
    • 示例:HTTP/1.1 200 OK
  2. Server
    • 用途:标识服务器软件(如 Apache、Nginx)。
    • 示例:Server: nginx/1.18.0
  3. Location
    • 用途:重定向目标 URL(常用于 3xx 状态码)。
    • 示例:Location: https://example.com/new-page
  4. Set-Cookie
    • 用途:向客户端设置 Cookie。
    • 示例:Set-Cookie: sessionId=abc123; Path=/; Secure
  5. Retry-After
    • 用途:客户端应等待多久后重试请求(用于 503 服务不可用)。
    • 示例:Retry-After: 3600(1 小时后重试)。

实体字段(Entity Headers)

  1. Content-Type
    • 用途:响应体的媒体类型(如 text/html, application/json)。
    • 示例:Content-Type: application/json; charset=utf-8
  2. Content-Length
    • 用途:响应体的字节长度。
    • 示例:Content-Length: 1024
  3. Content-Encoding
    • 用途:响应体的压缩方式(如 gzip, br)。
    • 示例:Content-Encoding: gzip
  4. Content-Disposition
    • 用途:指示客户端如何处理内容(如下载文件)。
    • 示例:Content-Disposition: attachment; filename="file.txt"
  5. Last-Modified
    • 用途:资源最后修改时间(用于缓存验证)。
    • 示例:Last-Modified: Tue, 15 Aug 2023 10:00:00 GMT
  6. ETag
    • 用途:资源版本的唯一标识符(用于缓存验证)。
    • 示例:ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"

安全相关字段(Security Headers)

  1. Strict-Transport-Security (HSTS)
    • 用途:强制使用 HTTPS(防止降级攻击)。
    • 示例:Strict-Transport-Security: max-age=31536000; includeSubDomains
  2. Content-Security-Policy (CSP)
    • 用途:限制页面加载资源的来源(防止 XSS)。
    • 示例:Content-Security-Policy: default-src 'self'
  3. X-Content-Type-Options
    • 用途:禁止浏览器猜测 MIME 类型(防止 MIME 类型嗅探)。
    • 示例:X-Content-Type-Options: nosniff
  4. X-Frame-Options
    • 用途:阻止页面在 <frame> 中加载(防止点击劫持)。
    • 示例:X-Frame-Options: DENY
  5. Permissions-Policy
    • 用途:控制浏览器功能(如摄像头、地理位置)的访问权限。
    • 示例:Permissions-Policy: geolocation=() (禁用地理位置)。

CORS 相关字段(跨域资源共享)

  1. Access-Control-Allow-Origin
    • 用途:允许跨域请求的源(如 * 或特定域名)。
    • 示例:Access-Control-Allow-Origin: https://example.com
  2. Access-Control-Allow-Methods
    • 用途:允许的 HTTP 方法(如 GET, POST)。
    • 示例:Access-Control-Allow-Methods: GET, POST, OPTIONS

其他常用字段

  1. WWW-Authenticate
    • 用途:定义身份验证方式(用于 401 Unauthorized)。
    • 示例:WWW-Authenticate: Basic realm="Access to site"
  2. Link
    • 用途:定义资源之间的关系(如预加载)。
    • 示例:Link: </style.css>; rel=preload; as=style

7、HTTP 状态码

当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。

HTTP状态码的英文为HTTP Status Code。

下面是常见的HTTP状态码:

  • 200 - 请求成功
  • 301 - 资源(网页等)被永久转移到其它URL
  • 302 - 资源临时移动到新 URL(浏览器不会缓存)
  • 304 - 资源未修改(客户端可使用缓存版本)
  • 403 - 服务器拒绝请求(权限不足),做了访问控制
  • 404 - 请求的资源(网页等)不存在
  • 500及以上 - 内部服务器错误
  • 502,504 - 代理出现了问题,nginx反向代理
  • 503 - 服务器暂时不可用(如维护或过载)

HTTP状态码分类

HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:

在这里插入图片描述

1xx(信息响应)

  • 100 Continue
    • 用途:客户端应继续发送请求的剩余部分(常用于大文件上传前的确认)。
    • 示例:客户端发送 Expect: 100-continue,服务器确认可继续。
  • 101 Switching Protocols
    • 用途:服务器同意切换协议(如从 HTTP 升级到 WebSocket)。
    • 示例:WebSocket 握手时返回此状态码。

2xx(成功响应)

  • 200 OK
    • 用途:请求成功,响应中包含请求的数据(如网页、JSON)。
    • 示例:访问页面或 API 返回数据时常见。
  • 201 Created
    • 用途:资源已成功创建(常见于 POST 请求)。
    • 示例:提交表单后返回新资源的 URL(如 Location: /users/123)。
  • 202 Accepted
    • 用途:请求已接受,但处理尚未完成(异步任务)。
    • 示例:长时间任务(如视频转码)的初始响应。
  • 204 No Content
    • 用途:请求成功,但无返回内容(常见于 DELETE 或 PUT 请求)。
    • 示例:删除资源后返回空响应。
  • 206 Partial Content
    • 用途:部分内容响应(用于分块下载或断点续传)。
    • 示例:视频播放器请求指定字节范围时返回。

3xx(重定向响应)

  • 301 Moved Permanently
    • 用途:资源已永久移动到新 URL(浏览器会缓存重定向)。
    • 示例:网站更换域名时使用 Location: https://new-domain.com
  • 302 Found
    • 用途:资源临时移动到新 URL(浏览器不会缓存)。
    • 示例:临时维护页面跳转。
  • 304 Not Modified
    • 用途:资源未修改(客户端可使用缓存版本)。
    • 触发条件:客户端发送 If-Modified-SinceIf-None-Match 头,服务器验证后返回。
  • 307 Temporary Redirect
    • 用途:临时重定向(强制保持原请求方法,如 POST)。
    • 示例:表单提交时临时跳转。
  • 308 Permanent Redirect
    • 用途:永久重定向(强制保持原请求方法)。
    • 示例:API 路径永久迁移。

4xx(客户端错误)

  • 400 Bad Request
    • 用途:请求格式错误(如参数缺失、JSON 语法错误)。
    • 示例:客户端发送了无效的请求体。
  • 401 Unauthorized
    • 用途:未提供有效身份验证凭证。
    • 示例:访问需要登录的页面时未携带 Token。
  • 403 Forbidden
    • 用途:服务器拒绝请求(权限不足)。
    • 示例:普通用户尝试访问管理员页面。
  • 404 Not Found
    • 用途:请求的资源不存在。
    • 示例:访问的 URL 路径错误或资源已被删除。
  • 405 Method Not Allowed
    • 用途:请求方法不被允许(如对只支持 GET 的接口发送 POST)。
    • 示例:Allow: GET, HEAD 标明支持的 HTTP 方法。
  • 408 Request Timeout
    • 用途:服务器等待请求超时。
    • 示例:客户端上传大文件时网络中断。
  • 409 Conflict
    • 用途:请求与服务器当前状态冲突(如重复提交)。
    • 示例:修改资源时版本号冲突。
  • 413 Payload Too Large
    • 用途:请求体超过服务器限制。
    • 示例:上传文件超过 nginxclient_max_body_size
  • 429 Too Many Requests
    • 用途:客户端请求频率过高。
    • 示例:API 限流时返回 Retry-After: 60

5xx(服务器错误)

  • 500 Internal Server Error
    • 用途:服务器内部错误(未具体说明的通用错误)。
    • 示例:后端代码抛出未捕获的异常。
  • 501 Not Implemented
    • 用途:服务器不支持请求的功能。
    • 示例:客户端请求了服务器未实现的 HTTP 方法。
  • 502 Bad Gateway
    • 用途:网关或代理服务器从上游服务器收到无效响应。
    • 示例:Nginx 作为反向代理时,后端服务崩溃。
  • 503 Service Unavailable
    • 用途:服务器暂时不可用(如维护或过载)。
    • 示例:高流量时返回 Retry-After: 3600
  • 504 Gateway Timeout
    • 用途:网关或代理服务器等待上游响应超时。
    • 示例:后端服务处理时间过长,导致 Nginx 超时。
  • 505 HTTP Version Not Supported
    • 用途:服务器不支持请求的 HTTP 版本。
    • 示例:客户端使用 HTTP/3,但服务器仅支持 HTTP/1.1。

其他特殊状态码

  • 418 I’m a teapot
    • 用途:玩笑状态码(来自 1998 年愚人节 RFC 文档)。
    • 示例:用于测试或幽默场景。
  • 451 Unavailable For Legal Reasons
    • 用途:因法律原因不可访问(如政府审查)。
    • 示例:某些国家/地区限制访问特定内容。

常见应用场景

  1. 调试 API
    • 通过状态码快速定位问题:
      • 400:检查请求参数格式。
      • 401:验证 Token 或 Cookie。
      • 403:检查用户权限。
      • 500:查看服务器日志。
  2. SEO 优化
    • 使用 301 而非 302 重定向以传递页面权重。
    • 避免链式重定向(如多次跳转)影响爬虫效率。
  3. 缓存控制
    • 304 可减少重复传输,提升性能。
    • 结合 Cache-ControlETag 实现高效缓存策略。

二、nginx 进阶基础

1、nginx 介绍

  • 高性能、高并发、高扩展,地址重写,负载均衡,是一个web服务器和反向代理服务器,消耗系统资源低
在这里插入图片描述

**Nginx (engine x) 是一个轻量级,高性能的 HTTP 和 反向代理 服务,也是一个IMAP/POP3/SMTP服务。因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。其特点是占有内存少,并发能力强,**事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东新浪网易腾讯淘宝等。

在高连接并发的情况下,Nginx是Apache服务器不错的替代品。 
创始人伊戈尔·赛索耶夫
在这里插入图片描述

2、为什么选择 nginx(优势)

1.高并发,高性能---采用epoll模型监控所有连接,采用异步,非阻塞的的方式实现的请求处理 2.高可靠---可以7*24小时不间断运行 3.可扩展性强--模块化设计,使得添加模块非常的平稳。 4.热部署--可以在不停止服务器的情况下升级nginx 5.BSD许可证--nginx不止开源免费的我们还可以更具实际需求进行定制修改源代码 

Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性:

单机环境下参考服务器配置。 并发连接数在7000+ -8000左右。 集群模式20000+ 

作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。能够支持高达 50,000 个并发连接数的响应。

作为负载均衡服务器:可以进行自定义配置,支持虚拟主机,支持URL重定向。Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP代理服务器 对外进行服务。Nginx 用 C 编写, 不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好的多。

Nginx 安装非常的简单,配置文件 非常简洁(还能够支持perl语法),Bugs非常少的服务器: Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。还能够在不间断服务的情况下进行软件版本的升级。yum安装与编译安装

1、IO多路复用

  • 采用epoll模型监控所有连接,通过IO多路复用的方式,采用异步,非阻塞的的方式实现的请求处理,从而实现高性能、高并发
1、I/O multiplexing【多并发】

第一种方法就是最传统的多进程并发模型 (每进来一个新的I/O流会分配一个新的线程管理。)

在这里插入图片描述

第二种方法就是I/O多路复用 (单个线程,通过记录跟踪每个I/O流(sock)的状态,来同时管理多个I/O流 。)

I/O multiplexing 这里面的 multiplexing 指的其实是在单个线程通过记录跟踪每一个Sock(I/O流)的状态来同时管理多个I/O流。发明它的原因,是尽量多的提高服务器的吞吐能力。在同一个线程里面, 通过拨开关的方式,来同时传输多个I/O流 
在这里插入图片描述
2、nginx基于事件驱动模型实现I/O多路复用
一个请求到来了,nginx使用epoll接收请求的过程是怎样的?
  • epoll.
• epoll 现在是线程安全的。 • epoll 现在不仅告诉你sock组里面数据,还会告诉你具体哪个sock有数据,你不用自己去找了。 #ngnix会有很多连接进来, 默认采用epoll会把他们都监视起来,然后像拨开关一样,谁有数据就拨向谁,然后调用相应的代码处理。
3、异步,非阻塞

$ pstree |grep nginx
|-+= 81666 root nginx: master process nginx
| |— 82500 nobody nginx: worker process
| — 82501 nobody nginx: worker process

1个master进程,n个work进程
每进来一个request,会有一个worker进程去处理。但不是全程的处理,处理到什么程度呢?处理到可能发生阻塞的地方,比如向上游(后端)服务器转发request,并等待请求返回。那么,这个处理的worker不会这么一直等着,他会在发送完请求后,注册一个事件:“如果upstream返回了,告诉我一声,我再接着干”。于是他就休息去了。这就是异步。此时,如果再有request 进来,他就可以很快再按这种方式处理。这就是非阻塞和IO多路复用。而一旦上游服务器返回了,就会触发这个事件,worker才会来接手,这个request才会接着往下走。这就是异步回调。 

我们为什么更喜欢用Nginx 呢,Nginx 相对Apache 有那些有点呢?

- 轻量级,同样是web服务比Apache占用更少的内存及资源 - 静态处理,Nginx 静态处理性能比 Apache 高 3倍以上 - 抗并发,Nginx 处理请求是异步非阻塞的,而Apache则是阻塞型的。在高并发下Nginx 能保持低资源低消耗高性能。 - 高度模块化的设计,编写模块相对简单 

3.nginx安装部署和配置管理

1、nginx部署-Yum安装

访问nginx的官方网站:http://www.nginx.org/

Nginx版本类型 Mainline version: 主线版,即开发版 Stable version: 最新稳定版,生产环境上建议使用的版本 Legacy versions: 遗留的老版本的稳定版 
在这里插入图片描述

Yum安装nginx

配置Yum源的官网:http://nginx.org/en/linux_packages.html

1、配置nginx的Yum源

Installation instructions

Before you install nginx for the first time on a new machine, you need to set up the nginx packages repository. Afterward, you can install and update nginx from the repository.

安装说明

在新计算机上首次安装nginx之前,需要设置nginx软件包存储库。 之后,您可以从存储库安装和更新nginx。

RHEL/CENTOS

Install the prerequisites:

sudo yum install yum-utils -y 
[nginx-stable]name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0enabled=1
sudo yum install nginx -y 
这里我们用稳定版本
[root@nginx-server yum.repos.d]# yum install -y nginx[root@nginx-server yum.repos.d]# nginx -V //格式化打印 nginx version: nginx/1.16.0 built by gcc 4.8.5 20150623(Red Hat 4.8.5-36)(GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'[root@nginx-server yum.repos.d]# nginx -v #查看版本号 nginx version: nginx/1.16.0 
关闭防火墙和selinux
[root@nginx-server ~]# getenforce  Enforcing [root@nginx-server ~]# sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config[root@nginx-server ~]# systemctl stop firewalld[root@nginx-server ~]# systemctl disable firewalld
启动并设置开机启动
[root@nginx-server ~]# systemctl start nginx [root@nginx-server ~]# systemctl enable nginx 

浏览器输入ip访问:

在这里插入图片描述
2、nginx 编译安装与配置使用
1、安装编译环境

yum -y install gcc gcc-c++

2、安装pcre软件包(使nginx支持http rewrite模块)

yum install -y pcre pcre-devel gd-devel

3、安装openssl-devel(使nginx支持ssl)

yum install -y openssl openssl-devel

4、安装zlib

yum install -y zlib zlib-devel

5、创建用户nginx

useradd nginx

passwd nginx

6、安装nginx
[root@localhost ~]# wget http://nginx.org/download/nginx-1.16.0.tar.gz[root@localhost ~]# tar xzf nginx-1.16.0.tar.gz -C /usr/local/[root@localhost ~]# cd /usr/local/nginx-1.16.0/[root@localhost nginx-1.16.0]# ./configure --prefix=/usr/local/nginx --group=nginx --user=nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/tmp/nginx/client_body --http-proxy-temp-path=/tmp/nginx/proxy --http-fastcgi-temp-path=/tmp/nginx/fastcgi --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre --with-http_realip_module --with-stream[root@localhost nginx-1.16.0]# make && make install
7、Nginx 编译参数
# 查看 nginx 安装的模块[root@localhost ~]#/usr/local/nginx/sbin/nginx -V --prefix=/usr/local/nginx //指向安装目录 --conf-path=/etc/nginx/nginx.conf //指定配置文件 --http-log-path=/var/log/nginx/access.log //指定访问日志 --error-log-path=/var/log/nginx/error.log //指定错误日志 --lock-path=/var/lock/nginx.lock //指定lock文件 --pid-path=/run/nginx.pid //指定pid文件 --http-client-body-temp-path=/var/lib/nginx/body //设定http客户端请求临时文件路径 --http-fastcgi-temp-path=/var/lib/nginx/fastcgi //设定http fastcgi临时文件路径 --http-proxy-temp-path=/var/lib/nginx/proxy //设定http代理临时文件路径 --http-scgi-temp-path=/var/lib/nginx/scgi //设定http scgi临时文件路径 --http-uwsgi-temp-path=/var/lib/nginx/uwsgi //设定http uwsgi临时文件路径 --with-debug //启用debug日志 --with-ipv6 //启用ipv6支持 --with-http_ssl_module //启用ssl支持 --with-http_stub_status_module //获取nginx自上次启动以来的状态 --with-http_realip_module //允许从请求标头更改客户端的IP地址值,默认为关 --with-http_auth_request_module //实现基于一个子请求的结果的客户端授权。如果该子请求返回的2xx响应代码,所述接入是允许的。如果它返回401或403中,访问被拒绝与相应的错误代码。由子请求返回的任何其他响应代码被认为是一个错误。 --with-http_addition_module //作为一个输出过滤器,支持不完全缓冲,分部分响应请求 --with-http_dav_module //增加PUT,DELETE,MKCOL:创建集合,COPY和MOVE方法 默认关闭,需编译开启 --with-http_geoip_module //使用预编译的MaxMind数据库解析客户端IP地址,得到变量值 --with-http_gunzip_module //它为不支持“gzip”编码方法的客户端解压具有“Content-Encoding: gzip”头的响应。 --with-http_gzip_static_module //在线实时压缩输出数据流 --with-http_spdy_module //SPDY可以缩短网页的加载时间 --with-http_sub_module //允许用一些其他文本替换nginx响应中的一些文本 --with-http_xslt_module //过滤转换XML请求 --with-mail //启用POP3/IMAP4/SMTP代理模块支持 --with-mail_ssl_module //启用ngx_mail_ssl_module支持启用外部模块支持 #--with 表示在编译过程中需要给nginx添加的模块#--without 表示编译nginx时默认该模块是添加进去的当使用这个参数时表示将默认编译的模块移除
8、修改配置文件/etc/nginx/nginx.conf
# 全局参数设置 user nginx;#设置nginx使用的用户 worker_processes 4;#设置nginx启动进程的数量,一般设置成与逻辑cpu数量相同  error_log logs/error.log;#指定错误日志  pid /var/run/nginx.pid; events { worker_connections 1024;#设置一个进程的最大并发连接数 }# http 服务相关设置  http { include mime.types;#关联mime类型,关联资源的媒体类型 default_type application/octet-stream;#根据文件的后缀来匹配相应的MIME类型 log_format main 'remote_addr - remote_user [time_local] "request" ''status body_bytes_sent "$http_referer" ''"http_user_agent" "http_x_forwarded_for"'; access_log /var/log/nginx/access.log main;#设置访问日志的位置和格式  sendfile on;#用于开启文件高效传输模式,一般设置为on,若nginx是用来进行磁盘IO负载应用时,可以设置为off,降低系统负载 tcp_nopush on;# 减少网络报文段数量,当有数据时,先别着急发送, 确保数据包已经装满数据, 避免了网络拥塞gzip on;#是否开启gzip压缩,将注释去掉开启  keepalive_timeout 65;#设置长连接的超时时间,请求完成之后还要保持连接多久,# 虚拟服务器的相关设置  server { listen 80;#设置监听的端口  server_name localhost;#设置绑定的主机名、域名或ip地址  charset koi8-r;# 设置编码字符  location / { root /var/www/nginx;#设置服务器默认网站的根目录位置,需要手动创建 index index.html index.htm;#设置默认打开的文档 } error_page 500502503504 /50x.html;#设置错误信息返回页面  location = /50x.html { root html;#这里的绝对位置是/usr/local/nginx/html}}}
#1.nginx.conf的组成:nginx.conf一共由三部分组成,分别为:全局块、events块、http块。在http块中又包含http全局块、多个server块。每个server块中又包含server全局块以及多个location块。在统一配置块中嵌套的配置快,各个之间不存在次序关系。2.Nginx的组成: nginx的二进制可执行文件----启动关闭,有各个模块编译出来的 nginx.conf配置文件----控制nginx access.log访问日志--记录每条http请求 error.log 错误日志--定位问题 
9、检测nginx配置文件是否正确
[root@localhost ~]# /usr/local/nginx/sbin/nginx -t[root@localhost ~]# mkdir -p /tmp/nginx
10、启动nginx服务
[root@localhost ~]# /usr/local/nginx/sbin/nginx
11、通过 nginx 命令控制 nginx 服务
# /usr/local/nginx/sbin/nginx -s stop 停服务# /usr/local/nginx/sbin/nginx -s reload 刷新配置文件 设置软连接 # ln -s /usr/local/nginx/sbin/nginx /bin/nginx 重新加载nginx配置文件 # nginx -s reload nginx -c /path/nginx.conf # 以特定目录下的配置文件启动nginx: nginx -s reload # 修改配置后重新加载生效 nginx -s stop # 快速停止nginx nginx -s quit # 正常停止nginx nginx -t # 测试当前配置文件是否正确 nginx -t -c /path/to/nginx.conf # 测试特定的nginx配置文件是否正确#注意: nginx -s reload 命令加载修改后的配置文件,命令下达后发生如下事件 1. Nginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行工作(因为worker未受到影响) 2. Nginx启动新的worker进程,采用新的配置文件 3. Nginx将新的请求分配新的worker进程 4. Nginx等待以前的worker进程的全部请求已经都返回后,关闭相关worker进程 5. 重复上面过程,知道全部旧的worker进程都被关闭掉 
12、nginx 日志文件详解

​ nginx 日志文件分为 log_formataccess_log 两部分

​ log_format 定义记录的格式,其语法格式为

 log_format 样式名称 样式详情 

​ 配置文件中默认有

log_format main 'remote_addr - remote_user [time_local] "request" ''status body_bytes_sent "$http_referer" ''"http_user_agent" "http_x_forwarded_for"';
在这里插入图片描述


在这里插入图片描述

4、使用 limit_rate 限制客户端传输数据的速度

1、编辑/etc/nginx/nginx.conf

location / { root /var/www/nginx/; index index.html index.htm; limit_rate 2k;#对每个连接的限速为2k/s} 重启服务 
注意要点:
配置文件中的每个语句要以 ; 结尾 

5、nginx 虚拟机配置

什么是虚拟主机?

虚拟主机是一种特殊的软硬件技术,它可以将网络上的每一台计算机分成多个虚拟主机,每个虚拟主机可以独立对外提供www服务,这样就可以实现一台主机对外提供多个web服务,每个虚拟主机之间是独立的,互不影响。

在这里插入图片描述

nginx可以实现虚拟主机的配置,nginx支持三种类型的虚拟主机配置。

1、基于域名的虚拟主机 (server_name来区分虚拟主机——应用:外部网站) 2、基于ip的虚拟主机, (一块主机绑定多个ip地址) 3、基于端口的虚拟主机 (端口来区分虚拟主机——应用:公司内部网站,外部网站的管理后台) 
1、 基于域名的虚拟主机

1、配置通过域名区分的虚拟机

[root@localhost ~]# cat /etc/nginx/nginx.conf worker_processes 4;#error_log logs/error.log; events { worker_connections 1024;} http { include mime.types; default_type application/octet-stream; server { listen 80; server_name web.testpm.com; location / { root /var/www/nginx/; index index.html index.htm; limit_rate 2k;}} server { listen 80; server_name www.testpm.com; location / { root /1000phone/html; index index.html index.htm;}}}

2、 为 域名为 web.1000phone.com 的虚拟机,创建 index 文件

[root@localhost ~]# mkdir -p /1000phone/html[root@localhost ~]# vim /1000phone/html/index.html<html><p> this is my 1000phone </p></html>

3、重新加载配置文件

# 如果编译安装的执行[root@nginx]# /usr/local/nginx/sbin/nginx -s reload# 如果 yum 安装的执行[root@nginx]# nginx -s reload

4、客户端配置路由映射

在 C:\Windows\System32\drivers\etc\hosts 文件中添加两行(linux:/etc/hosts)
10.0.105.199 web.testpm.com 10.0.105.199 web.1000phone.com 

5、 测试访问

浏览器输入:http://web.testpm.com/ 浏览器输入:http://web.1000phone.com/ 
2、 基于ip的虚拟主机
[root@localhost ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:17:f1:af brd ff:ff:ff:ff:ff:ff inet 10.0.105.199/24 brd 10.0.105.255 scope global dynamic ens33 valid_lft 81438sec preferred_lft 81438sec inet6 fe80::9d26:f3f0:db9c:c9be/64 scope link valid_lft forever preferred_lft forever 两种方式添加网卡 [root@localhost ~]# ifconfig ens33:1 10.0.105.201/24[root@localhost ~]# ip a a 10.0.105.201/24 dev ens33[root@localhost ~]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.105.199 netmask 255.255.255.0 broadcast 10.0.105.255 inet6 fe80::9d26:f3f0:db9c:c9be prefixlen 64 scopeid 0x20<link> ether 00:0c:29:17:f1:af txqueuelen 1000(Ethernet) RX packets 9844 bytes 1052722(1.0 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 5567 bytes 886269(865.4 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.105.201 netmask 255.255.255.0 broadcast 10.0.105.255 ether 00:0c:29:17:f1:af txqueuelen 1000(Ethernet)2、配置通过ip区分的虚拟机 [root@localhost ~]# cat /etc/nginx/nginx.conf user root; worker_processes 4;#error_log logs/error.log; events { worker_connections 1024;} http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status$body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"'; server { listen 10.0.105.199:80; server_name web.testpm.com; location / { root /var/www/nginx/; index index.html index.htm; limit_rate 2k;} server { listen 10.0.105.201:80; server_name www.testpm.com; location / { root /1000phone/html/; index index.html index.htm;}}}3、重新加载配置文件 [root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload4、 测试访问 浏览器输入:http://10.0.105.199 浏览器输入:http://10.0.105.201 5、补充 -- 两种方式删除绑定的vip [root@localhost ~]# ifconfig ens33:1 10.0.105.201/24 down[root@localhost ~]# ip a d 10.0.105.201/24 dev ens33  重启一下nginx [root@localhost ~]# systemctl restart nginx
3、 基于端口的虚拟主机
[root@localhost ~]# cat /etc/nginx/nginx.conf user root; worker_processes 4; events { worker_connections 1024;} http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status$body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"'; sendfile on; keepalive_timeout 65; server { listen 80; server_name web.testpm.com; location / { root /var/www/nginx/; index index.html index.htm; limit_rate 2k;} server { listen 8080; server_name www.testpm.com; location / { root /1000phone/html/; index index.html index.htm;}}} 重新加载配置文件: [root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload 测试访问: 浏览器输入:http://web.testpm.com/ 浏览器输入:http://web.1000phone.com:8080 

Nginx进阶-常见配置

一、nginx Proxy 反向代理

1、代理原理

反向代理产生的背景:

在计算机世界里,由于单个服务器的处理客户端(用户)请求能力有一个极限,当用户的接入请求蜂拥而入时,会造成服务器忙不过来的局面,可以使用多个服务器来共同分担成千上万的用户请求,这些服务器提供相同的服务,对于用户来说,根本感觉不到任何差别。

反向代理服务的实现:

需要有一个负载均衡设备(即反向代理服务器)来分发用户请求,将用户请求分发到后端正真提供服务的服务器上。服务器返回自己的服务到负载均衡设备。负载均衡设备将服务器的服务返回用户。

在这里插入图片描述

2、正/反向代理的区别

正向代理

**正向代理的过程隐藏了真实的请求客户端,服务器不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替请求。**我们常说的代理也就是正向代理,正向代理代理的是请求方,也就是客户端;比如我们要访问youtube,可是不能访问,只能先安装个FQ软件代你去访问,通过FQ软件才能访问,FQ软件就叫作正向代理。
![在这里插入图片描述](https://i-blog.ZEEKLOGimg.cn/direct/cbda9cf26d164c1bb0e25207efec4ac7.png

反向代理

**反向代理的过程隐藏了真实的服务器,客户不知道真正提供服务的人是谁,客户端请求的服务都被代理服务器处理。反向代理代理的是响应方,也就是服务端;**我们请求www.baidu.com时这www.baidu.com就是反向代理服务器,真实提供服务的服务器有很多台,反向代理服务器会把我们的请求分转发到真实提供服务的各台服务器。Nginx就是性能非常好的反向代理服务器,用来做负载均衡。

访问www.baidu.com是反向代理的过程

在这里插入图片描述


在这里插入图片描述
两者的区别在于代理的对象不一样
正向代理中代理的对象是客户端,服务器不知道访问的对象是谁 反向代理中代理的对象是服务端,客户端不知道真正提供服务的是谁 

3、nginx Proxy 配置

1、代理模块
ngx_http_proxy_module 
2、启用 nginx proxy 代理

环境两台nginx真实服务器

a、nginx-1 启动网站(内容)(作为应用服务器)

nginx-1的ip:10.0.105.199 已经编译安装好,检查nginx是否启动是否可以访问 

b、nginx-2 作为代理服务器

nginx-2的ip:10.0.105.202 配置nginx的yum源直接yum安装 启动 编辑nginx的配置文件: [root@nginx-server ~]# vim /etc/nginx/conf.d/default.conf server { server { listen 80; server_name localhost; location / { proxy_pass http://10.0.105.199:80; proxy_redirect default; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 30; proxy_send_timeout 60; proxy_read_timeout 60;}} 重新加载nginx配置文件 设置软连接 # ln -s /usr/local/nginx/sbin/nginx /bin/nginx[root@nginx-server ~]# nginx -s reload yum安装页面位置:/usr/share/nginx/html/index.html 

c、nginx proxy 具体配置详解

proxy_pass :真实后端服务器的地址,可以是ip也可以是域名和url地址 proxy_redirect :如果真实服务器使用的是的真实IP:非默认端口。则改成IP:默认端口。 proxy_set_header:重新定义或者添加发往后端服务器的请求头 proxy_set_header X-Real-IP $remote_addr;#只记录连接服务器的上一个ip地址信息。 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#通过这个选项可以记录真正客户端机器的ip地址 proxy_connect_timeout::后端服务器连接的超时时间发起三次握手等候响应超时时间 proxy_send_timeout:后端服务器数据回传时间,就是在规定时间之内后端服务器必须传完所有的数据 proxy_read_timeout :nginx接收upstream(上游/真实) server数据超时, 默认60s, 如果连续的60s内没有收到1个字节, 连接关闭。像长连接 

注意:proxy_pass http:// 填写nginx-1服务器的地址。

使用PC客户端访问nginx-2服务器地址 浏览器中输入http://10.0.105.202 (也可以是nginx-2服务器的域名) 成功访问nginx-1服务器页面 

观察nginx-1服务器的日志

10.0.105.202 - - [27/Jun/2019:15:54:17 +0800]"GET / HTTP/1.0"3040"-""Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36""10.0.105.207"
10.0.105.202 代理服务器地址 10.0.105.207 客户机地址。 访问成功。 记录了客户机的IP和代理服务器的IP 

二、Nginx负载均衡

  • 负载均衡–通过算法将用户的请求平均分配给每一台机器,从而降低单台机器的访问压力,网站响应速度提高了,避免了单节点故障
  • 模块upstream–七层的负载均衡
1、upstream配置

首先给大家说下 upstream 这个配置的,这个配置是写一组被代理的服务器地址,然后配置负载均衡的算法.

upstream testapp { server 10.0.105.199:8081; server 10.0.105.202:8081;} server {.... location / { proxy_pass http://testapp;#请求转向 testapp 定义的服务器列表 }
2、负载均衡算法
upstream 支持6种负载均衡调度算法 1、轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器;2、加权轮询:根据权重值来分配,默认服务器权重1,修改了权重值就给权重值大的多分配 3、ip_hash:每个请求按访问IP的hash结果分配,同一个IP客户端固定访问一个后端服务器。可以保证来自同一ip的请求被打到固定的机器上,可以解决session问题。 4、url_hash:按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器。 5、fair:这是比上面两个更加智能的负载均衡算法。此种算法可以依据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配。Nginx本身是不支持 fair的,如果需要使用这种调度算法,必须下载Nginx的 upstream_fair模块。 6、least_conn:最少连接:优先将请求分发给当前连接数最少的后端服务器。 
3、配置实例

1、热备:如果你有2台服务器,当一台服务器发生事故时,才启用第二台服务器给提供服务。服务器处理请求的顺序:AAAAAA突然A挂啦,BBBBBBBBBBBBBB…

upstream myweb { server 172.17.14.2:8080; server 172.17.14.3:8080 backup;#热备 }

2、轮询:nginx默认就是轮询其权重都默认为1,服务器处理请求的顺序:ABABABABAB

upstream myweb { server 172.17.14.2:8080; server 172.17.14.3:8080;}

3、加权轮询:跟据配置的权重的大小而分发给不同服务器不同数量的请求。如果不设置,则默认为1。下面服务器的请求顺序为:ABBABBABBABBABB…

upstream myweb { server 172.17.14.2:8080 weight=1; server 172.17.14.3:8080 weight=2;}

4、ip_hash:nginx会让相同的客户端ip请求相同的服务器。

upstream myweb { server 172.17.14.2:8080; server 172.17.14.3:8080; ip_hash;}

5、nginx负载均衡配置状态参数

- down,表示当前的server暂时不参与负载均衡。 - backup,预留的备份机器。当其他所有的非backup机器出现故障或者忙的时候,才会请求backup机器,因此这台机器的压力最轻。 - max_fails,允许请求失败的次数,默认为1。当超过最大次数时,返回proxy_next_upstream 模块定义的错误。 - fail_timeout,在经历了max_fails次失败后,暂停服务的时间单位秒。max_fails可以和fail_timeout一起使用。 
 upstream myweb { server 172.17.14.2:8080 weight=2max_fails=2fail_timeout=2; server 172.17.14.3:8080 weight=1max_fails=2fail_timeout=1;}

如果你想跟多更深入的了解 nginx 的负载均衡算法,nginx官方提供一些插件大家可以了解下。

4、nginx配置7层协议
  • 用http,upstream模块

举例讲解下什么是7层协议,什么是4层协议。

(1)7层协议

OSI(Open System Interconnection)是一个开放性的通行系统互连参考模型,他是一个定义的非常好的协议规范,共包含七层协议。直接上图,这样更直观些:

在这里插入图片描述

好,详情不进行仔细讲解,可以自行百度

(2)协议配置

这里我们举例,在nginx做负载均衡,负载多个服务,部分服务是需要7层的,部分服务是需要4层的,也就是说7层和4层配置在同一个配置文件中。

准备三台机器:

代理服务IP:10.0.105. --配置本地host解析域名; 后端服务器IP:nginx-a :10.0.105.199/nginx-b:10.0.105.202(yum安装)后端服务器将nginx服务启动 配置代理服务器的nginx配置文件:/etc/nginx/nginx.conf 
worker_processes 4; worker_rlimit_nofile 102400; events { worker_connections 1024;} http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status$body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';#access_log logs/access.log main; sendfile on; keepalive_timeout 65;gzip on; upstream testweb {#ip_hash; server 10.0.105.199:80 weight=2max_fails=2fail_timeout=2s; server 10.0.105.202:80 weight=2max_fails=2fail_timeout=2s;} server { listen 80; server_name www.test.com; charset utf-8;#access_log logs/host.access.log main; location / { proxy_pass http://testweb; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;} error_page 500502503504 /50x.html; location = /50x.html { root html;}}}

202服务器yum安装的创建新的配置文件:

[root@nginx-server ~]# cd /etc/nginx/conf.d/[root@nginx-server conf.d]# cp default.conf test.conf[root@nginx-server conf.d]# cat test.conf  server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm;}} 定义yum安装的页面位置为:/usr/share/nginx/html [root@nginx-server ~]# nginx -s reload
浏览器测试访问: http://www.test.com/ 
nginx 配置后端健康检查模块
nginx自带的针对后端节点健康检查的功能比较简单,通过默认自带的ngx_http_proxy_module 模块和ngx_http_upstream_module模块中的参数来完成,当后端节点出现故障时,自动切换到健康节点来提供访问。但是nginx不能事先知道后端节点状态是否健康,后端即使有不健康节点,负载均衡器依然会先把请求转发给该不健康节点,然后再转发给别的节点,这样就会浪费一次转发,而且自带模块无法做到预警。所以我们可以使用第三方模块 nginx_upstream_check_module模块 nginx_upstream_check_module模块由淘宝团队开发 淘宝自己的 tengine 上是自带了该模块的。我们使用原生Nginx,采用添加模块的方式 

获取nginx_upstream_check_module模块

从github上面获取就可以了。

[root@nginx-server ~]# yum install -y unzip 下载模块 [root@nginx-server ~]# wget https://github.com/yaoweibin/nginx_upstream_check_module/archive/refs/heads/master.zip [root@nginx-server ~]# unzip -d /usr/local/ master.zip 安装补丁: 注意 check版本和Nginx版本要求有限制 1.12以上版本的nginx,补丁为check_1.11.5+.patch 具体参考github # ls nginx_upstream_check_module-master 可以看版本 # -p0,是“当前路径” -p1,是“上一级路径” [root@nginx-server ~]# cd /usr/local/nginx-1.22.1/ #进入nginx的解压目录中 [root@nginx-server nginx-1.22.1]# yum install -y patch [root@nginx-server nginx-1.22.1]# patch -p1 < ../nginx_upstream_check_module-master/check_1.20.1+.patch [root@nginx-server nginx-1.22.1]# ./configure --prefix=/usr/local/nginx --group=nginx --user=nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/tmp/nginx/client_body --http-proxy-temp-path=/tmp/nginx/proxy --http-fastcgi-temp-path=/tmp/nginx/fastcgi --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre --with-http_realip_module --with-stream --add-module=../nginx_upstream_check_module-master/ [root@nginx-server nginx-1.22.1]# make #重新编译文件, 如果是添加模块只需要make 第一次安装需要make install [root@nginx-server nginx-1.22.1]# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak #将原来的nginx二进制命令备份 [root@nginx-server nginx-1.22.1]# cp objs/nginx /usr/local/nginx/sbin/ #将新生成的命令cp到nginx的命令目录中。 

配置健康检查

编译安装:/etc/nginx/nginx.conf
yum安装: /etc/nginx/conf.d/default.conf

http { upstream app { server 192.168.209.128 weight=1; server 192.168.209.130 weight=1; check interval=5000 rise=2 fall=3 timeout=4000 type=http port=80; check_http_send "HEAD / HTTP/1.0\r\n\r\n"; check_http_expect_alive http_2xx http_3xx; } server { listen 80; server_name localhost; location / { proxy_pass http://app; proxy_redirect default; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /status { #开启监控状态页面 check_status; access_log off; } } } 参数解释: interval:表示每隔多少毫秒向后端发送健康检查包; rise:表示如果连续成功次数达到2 服务器就被认为是up; fail:表示如果连续失败次数达到3 服务器就被认为是down; timeout:表示后端健康请求的超时时间是多少毫秒; type:表示发送的健康检查包是什么类型的请求; port: 表示发送检查到后端的服务的端口; check_http_send:表示http健康检查包发送的请求内容。为了减少传输数据量,推荐采用“head”方法; check_http_expect_alive:指定HTTP回复的成功状态,默认认为2XX和3XX的状态是健康的; 

浏览器查看访问状态

在这里插入图片描述
5、4层协议方法(扩展)
  • 用tcp,使用stream模块

(2)4层协议

TCP/IP协议

之所以说TCP/IP是一个协议族,是因为TCP/IP协议包括TCP、IP、UDP、ICMP、RIP、SMTP、ARP、TFTP等许多协议,这些协议一起称为TCP/IP协议。 

从协议分层模型方面来讲,TCP/IP由四个层次组成:网络接口层、网络层、传输层、应用层。

在这里插入图片描述

nginx在1.9.0的时候,增加了一个 stream 模块,用来实现四层协议(网络层和传输层)的转发、代理、负载均衡等。stream模块的用法跟http的用法类似,允许我们配置一组TCP或者UDP等协议的监听.

配置案例:

#4层tcp负载  stream { upstream ssh_01 { server 192.168.209.129:22;} server { listen 6666; proxy_pass ssh_01; proxy_timeout 60s; proxy_connect_timeout 30s;}}#注意:stream块是与http块同一级别#ssh 本机ip -p6666 
6.经典面试题

nginx中有两个server 一个是a.com 一个是b.com 现在访问c.com 返回的是哪个页面,(定义友好返回页面)

1. 匹配 server_name:Nginx 优先检查请求的Host头(此处为c.com),并尝试匹配配置中的 server_name。由于配置中只有a.com和b.com的server块,没有匹配项。 2. 默认server块:若未匹配到任何server_name,Nginx会选择监听相同端口且标记为`default_server`的 server块。若未显式指定default_server,则默认选择第一个定义的server块。 3.设置了地址重写,根据规定进行相应的返回 配置案例 server { listen 80 default_server; server_name _; return 444; # 关闭连接或返回自定义错误页 } 

三、nginx 会话保持

nginx会话保持主要有以下几种实现方式。

1、ip_hash
ip_hash使用源地址哈希算法,将同一客户端的请求总是发往同一个后端服务器,除非该服务器不可用。 ip_hash语法: 
upstream backend { ip_hash; server backend1.example.com; server backend2.example.com; server backend3.example.com down;}
ip_hash简单易用,但有如下问题: 当后端服务器宕机后,session会丢失; 来自同一局域网的客户端会被转发到同一个后端服务器,可能导致负载失衡; 
2、sticky_cookie_insert—而是基于cookie实现
  • 使用sticky_cookie_insert模块
使用sticky_cookie_insert,这会让来自同一客户端的请求被传递到一组服务器的同一台服务器。与ip_hash不同之处在于,它不是基于IP来判断客户端的,而是基于cookie来判断。(需要引入第三方模块才能实现)---sticky模块。因此可以避免上述ip_hash中来自同一局域网的客户端和前段代理导致负载失衡的情况。 

语法:

编译安装sticky模块,#给yum安装的nginx添加模块[root@nginx-server ~]# yum install -y pcre* openssl* gcc gcc-c++ make 安装编译环境[root@nginx-server ~]# wget https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/08a395c66e42.zip #下载sticky模块[root@nginx-server ~]# nginx -v nginx version: nginx/1.18.0 # systemctl stop nginx[root@nginx-server ~]# wget http://nginx.org/download/nginx-1.18.0.tar.gz #下载yum安装nginx对应版本的源码包[root@nginx-server ~]# yum install -y unzip #安装解压工具[root@nginx-server ~]# unzip 08a395c66e42.zip #解压模块包[root@nginx-server ~]# mv nginx-goodies-nginx-sticky-module-ng-08a395c66e42/ nginx-sticky-module-ng/[root@nginx-server ~]# tar xzvf nginx-1.18.0.tar.gz -C /usr/local/ #解压nginx的源码包[root@nginx-server ~]# cd /usr/local/nginx-1.18.0/[root@nginx-server nginx-1.18.0]# nginx -V #查看yum安装nginx所有模块[root@nginx-server nginx-1.18.0]# ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie' --add-module=/root/nginx-sticky-module-ng[root@nginx-server nginx-1.18.0]# make && make install 配置基于cookie会话保持 [root@nginx-server nginx-1.18.0]#cd /etc/nginx#vim nginx.conf [root@nginx-server conf.d]# vim upstream.conf upstream qfedu { server 192.168.198.143; server 192.168.198.145; sticky;}[root@nginx-server conf.d]# vim proxy.conf server { listen 80; server_name localhost;#charset koi8-r;#access_log /var/log/nginx/host.access.log main; location / {# root html; 默认参数# index index.html index.htm; proxy_pass http://qfedu; proxy_redirect default; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}[root@nginx-server conf.d]# nginx -t [root@nginx-server conf.d]# nginx -s reload 或者: upstream qfedu { server 192.168.198.143; server 192.168.198.145; sticky expires=1h domain=testpm.com path=/;} 说明: expires:设置浏览器中保持cookie的时间 domain:定义cookie的域 path:为cookie定义路径 

浏览器测试访问

注意:使用后端服务器自身通过相关机制保持session同步,如:使用数据库、redis、memcached 等做session复制

四、nginx 实现动静分离

  • 动态分离好处:动态页面和静态页面由不同的服务器来解析,加快解析速度,降低单个服务器的压力,提升整个网站的响应速度

为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。 简单来说,就是使用正则表达式匹配过滤,然后交个不同的服务器。

1、准备环境

准备一个nginx代理 两个http 分别处理动态和静态。

expires功能说明---(为客户端配置缓存时间),主要用于图片类 nginx缓存的设置可以提高网站性能,对于网站的图片,尤其是新闻网站,图片一旦发布,改动的可能是非常小的,为了减小对服务器请求的压力,提高用户浏览速度,我们可以通过设置nginx中的expires,让用户访问一次后,将图片缓存在用户的浏览器中,且时间比较长的缓存。 原理:当nginx设置了expires后,例如设置为:expires 10d; 那么用户在10天内请求的时候,都只会访问浏览器中的缓存,而不会去请求nginx。 注:需要注意的是,这种缓存方式只能在用户不对浏览器强制刷新的情况下生效,如果用户通过url来进行访问,是可以访问到缓存的。 
1.静态资源配置 编译安装:/etc/nginx/nginx.conf yum安装: /etc/nginx/conf.d/default.conf server { listen 80; server_name localhost; location ~ \.(html|jpg|png|js|css){ root /home/www/nginx; expires 1d;#为客户端设置静态资源缓存时间}}# mkdir -p /home/www/nginx# cd /home/www/nginx  上传照片并给权限 测试: [root@nginx-yum2 conf.d]# curl -I http://10.0.105.200/test.jpg HTTP/1.1 200 OK Server: nginx/1.16.0 Date: Mon, 07 Sep 201911:35:08 GMT Content-Type: image/jpeg Content-Length: 27961 Last-Modified: Mon, 07 Sep 201911:31:17 GMT Connection: keep-alive ETag: "5f561a05-6d39" Expires: Tue, 08 Sep 201911:35:08 GMT #缓存到期时间 Cache-Control: max-age=86400#缓存持续时间秒 Accept-Ranges: bytes 
2.动态资源配置: yum 安装php7.1 [root@nginx-server ~]# yum install -y epel-release[root@nginx-server ~]# rpm -ivh http://rpms.remirepo.net/enterprise/remi-release-7.rpm[root@nginx-server ~]# cd /etc/yum.repos.d/[root@nginx-server yum.repos.d]# ls remi-php73.repo remi-php74.repo remi-php80.repo nginx.repo remi-php81.repo remi-modular.repo remi-php82.repo remi-php54.repo remi-php83.repo remi-php70.repo remi.repo remi-php71.repo remi-safe.repo epel.repo remi-php72.repo [root@nginx-server ~]# yum install -y yum-utils[root@nginx-server ~]# yum-config-manager --enable remi-php71[root@nginx-server ~]# yum -y install php-xsl php php-ldap php-cli php-common php-devel php-gd php-pdo php-mysql php-mbstring php-bcmath php-mcrypt php-fpm
[root@nginx-server ~]# systemctl start php-fpm [root@nginx-server ~]# systemctl enable php-fpm 
#动态服务器编辑nginx连接php 编辑nginx的配置文件: 编译安装:/etc/nginx/nginx.conf yum安装: /etc/nginx/conf.d/default.conf server { listen 80; server_name localhost; location ~ \.php$ { root /home/nginx/html;#指定网站目录 fastcgi_pass 127.0.0.1:9000;#开启fastcgi连接php地址 fastcgi_index index.php;#指定默认文件 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#站点根目录,取决于root配置项 include fastcgi_params;#包含fastcgi使用的常量}} 创建目录:mkdir -p /home/nginx/html 测试代码: #vim /home/nginx/html/index.php<?php echo"hello world" ?>
3.配置nginx反向代理upstream,并实现客户端缓存时间 配置upstream: upstream static { server 10.0.105.196:80 weight=1max_fails=1fail_timeout=60s;} upstream php { server 10.0.105.200:80 weight=1max_fails=1fail_timeout=60s;} 配置反向代理: server { listen 80; server_name localhost #动态资源加载 location ~ \.(php|jsp)$ { proxy_pass http://php; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}#静态资源加载 location ~ .*\.(html|jpg|png|css|js)$ { proxy_pass http://static; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}
当访问静态页面的时候location 匹配到 (html|jpg|png|js|css) 通过转发到静态服务器,静态服务通过location的正则匹配来处理请求。 当访问动态页面时location匹配到 .\php 结尾的文件转发到后端php服务处理请求。 

五、nginx的localtion指令详解

Nginx 的 HTTP 配置主要包括三个区块,结构如下:

http {# 这个是协议级别 include mime.types; default_type application/octet-stream; keepalive_timeout 65;gzip on; server {# 这个是服务器级别 listen 80; server_name localhost; location / {# 这个是请求级别 root html; index index.html index.htm;}}}
1、location 区段
- location 是在 server 块中配置,根据不同的 URI 使用不同的配置,来处理不同的请求。 - location 是有顺序的,会根据不同请求配置的优先级来匹配的location 处理。 基本语法如下: 
location [=|^~|~|~*|!~|!~*|/|@] pa4ttern{……}
2、location 前缀含义
常用: ~ 表示区分大小写的正则匹配 ~* 表示不区分大小写的正则匹配 ^~ 表示uri以某个常规字符串开头,理解为匹配url路径即可 
= 表示精确匹配,优先级也是最高的 !~ 表示区分大小写不匹配的正则 !~* 表示不区分大小写不匹配的正则 / 通用匹配,任何请求都会匹配到 

查找顺序和优先级

= 大于 ^~ 大于 ~|~*|!~|!~* 大于 / 多个location配置的情况下匹配顺序为:首先匹配 =,其次匹配^~, 其次是按正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。 
3、location 配置示例

1、没有修饰符 表示:必须以指定模式开始

server { listen 80; server_name localhost; location /abc { root /home/www/nginx; index 2.html;} 那么,如下是对的: http://192.168.1.9/abc 注意:此时 /home/www/nginx为根目录 在此目录下 创建mkdir /home/www/nginx/abc目录 创建文件 touch /abc/2.html 

2、=表示:必须与指定的模式精确匹配

server { listen 80; server_name localhost; access_log /var/log/nginx/http_access.log main; location / {return https://www.baidu.com;} location = / {return https://www.jd.com;}} 测试: 

3、~ 表示:指定的正则表达式要区分大小写

server { server_name localhost; location ~ /abc { root /home/www/nginx; index 2.html index.html;}} 测试访问: http://192.168.1.9/abc 不正确的 http://192.168.1.9/ABC ======================================== 如果将配置文件修改为 location ~ /ABC { root /home/www/nginx; index 2.html index.html;} 在创建目录和文件: [root@ansible-server html]# cd /home/www/nginx/[root@ansible-server nginx]# mkdir ABC[root@ansible-server nginx]# vim ABC/2.html 访问: http://192.168.1.9/ABC/ 结论:~ 需要区分大小写。而且目录需要根据大小写定义。 

4、^*匹配案例

~*:表示不区分大小写的正则匹配 [root@localhost conf.d]# cat default.conf  server { listen 80; server_name localhost;#access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm;} location ~* /a/b/ {return888;}} 测试: [root@localhost ~]# curl -I http://192.168.209.200/a/b/ HTTP/1.1 888 Server: nginx/1.24.0 Date: Fri, 24 Nov 2023 08:14:09 GMT Content-Length: 0 Connection: keep-alive [root@localhost ~]# curl -I http://192.168.209.200/A/B/ HTTP/1.1 888 Server: nginx/1.24.0 Date: Fri, 24 Nov 2023 08:16:52 GMT Content-Length: 0 Connection: keep-alive ^~:表示uri以某个常规字符串开头,理解为匹配url路径即可 例如:下面配置文件有两条规则,分别匹配url以字母a开头,但是长度不同,首先将长的规则先注释掉,如下: [root@localhost conf.d]# cat default.conf  server { listen 80; server_name localhost;#access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm;} location ^~ /a/ {return123;}#location ^~ /a/b/ {#return 12345;#}} 测试: [root@localhost ~]# curl -I http://192.168.209.200/a/ HTTP/1.1 678 Server: nginx/1.24.0 Date: Fri, 24 Nov 2023 08:28:03 GMT Content-Length: 0 Connection: keep-alive [root@localhost ~]# curl -I http://192.168.209.200/a/b/ HTTP/1.1 678 Server: nginx/1.24.0 Date: Fri, 24 Nov 2023 08:28:07 GMT Content-Length: 0 Connection: keep-alive [root@localhost ~]# curl -I http://192.168.209.200/a/b/dsdfsdf HTTP/1.1 678 Server: nginx/1.24.0 Date: Fri, 24 Nov 2023 08:28:10 GMT Content-Length: 0 Connection: keep-alive 结论: 当前只有一个规则开启,因此当匹配url以/a/开头的任何url时,都会返回状态码678 现在打开注释: [root@localhost conf.d]# cat default.conf  server { listen 80; server_name localhost;#access_log /var/log/nginx/host.access.log main; location ^~ /a/ {return678;} location ^~ /a/b/ {return876;}} 测试: [root@localhost ~]# curl -I http://192.168.209.200/a/ HTTP/1.1 678 Server: nginx/1.24.0 Date: Fri, 24 Nov 2023 08:44:52 GMT Content-Length: 0 Connection: keep-alive [root@localhost ~]# curl -I http://192.168.209.200/a/b/ HTTP/1.1 876 Server: nginx/1.24.0 Date: Fri, 24 Nov 2023 08:44:56 GMT Content-Length: 0 Connection: keep-alive [root@localhost ~]# curl -I http://192.168.209.200/a/b/sdgsdgdg HTTP/1.1 876 Server: nginx/1.24.0 Date: Fri, 24 Nov 2023 08:44:58 GMT Content-Length: 0 Connection: keep-alive 结论: 两条规则同时被匹配成功,但是第二条规则比较长,因此第二条规则优先被匹配。 

六、nginx 地址重写 rewrite

1、什么是Rewrite

Rewrite对称URL Rewrite,即URL重写,就是把传入Web的请求重定向到其他URL的过程

  • 从安全角度上讲,如果在URL中暴露太多的参数,无疑会造成一定量的信息泄漏,可能会被一些黑客利用,对你的系统造成一定的破坏,所以静态化的URL地址可以给我们带来更高的安全性。
  • 实现网站地址跳转,例如用户访问360buy.com,将其跳转到jd.com。例如当用户访问tianyun.com的
    80端口时,将其跳转到443端口。
2、Rewrite 相关指令
  • Nginx Rewrite 相关指令有 if、rewrite、set、return
2.1、if 语句

应用环境

server,location 

语法:

if(condition){ … }if 可以支持如下条件判断匹配符号 ~ 正则匹配 (区分大小写) ~* 正则匹配 (不区分大小写)!~ 正则不匹配 (区分大小写)!~* 正则不匹配 (不区分大小写) -f 和!-f 用来判断是否存在文件 -d 和!-d 用来判断是否存在目录 -e 和!-e 用来判断是否存在文件或目录 -x 和!-x 用来判断文件是否可执行 在匹配过程中可以引用一些Nginx的全局变量 $args 请求中的参数;$document_root 针对当前请求的根路径设置值;$host 请求信息中的"Host",如果请求中没有Host行,则等于设置的服务器名;$limit_rate 对连接速率的限制;$request_method 请求的方法,比如"GET"、"POST"等;$remote_addr 客户端地址;$remote_port 客户端端口号;$remote_user 客户端用户名,认证用;$request_filename 当前请求的文件路径名(带网站的主目录/usr/local/nginx/html/images/a.jpg) $request_uri 当前请求的文件路径名(不带网站的主目录/images/a.jpg) $query_string 与$args相同;$scheme 用的协议,比如http或者是https $server_protocol 请求的协议版本,"HTTP/1.0"或"HTTP/1.1";$server_addr 服务器地址,如果没有用listen指明服务器地址,使用这个变量将发起一次系统调用以取得地址(造成资源浪费);$server_name 请求到达的服务器名;$document_uri 与$uri一样,URI地址;$server_port 请求到达的服务器端口号;
2.2、Rewrite flag 地址重写的四个标记

rewrite 指令根据表达式来重定向URI,或者修改字符串。可以应用于server,location, if环境下每行rewrite指令最后跟一个flag标记,支持的flag标记有:

last 表示完成rewrite。默认为last。 break 本条规则匹配完成后,终止匹配,不再匹配后面的规则 redirect 返回302临时重定向,浏览器地址会显示跳转后的URL地址 permanent 返回301永久重定向,浏览器地址会显示跳转后URL地址 

redirect 和 permanent区别则是返回的不同方式的重定向:对于客户端来说一般状态下是没有区别的。而对于搜索引擎,相对来说301的重定向更加友好,如果我们把一个地址采用301跳转方式跳转的话,搜索引擎会把老地址的相关信息带到新地址,同时在搜索引擎索引库中彻底废弃掉原先的老地址。使用302重定向时,搜索引擎(特别是google)有时会查看跳转前后哪个网址更直观,然后决定显示哪个,如果它觉的跳转前的URL更好的话,也许地址栏不会更改。

1、Rewrite匹配参考示例
本地解析host文件--wind # http://www.testpm.com/a/1.html ==> http://www.testpm.com/b/2.html location /a { root /html; index 1.html index.htm; rewrite .* /b/2.html permanent;} location /b { root /html; index 2.html index.htm;} 例2: # http://www.testpm.com/2019/a/1.html ==> http://www.testpm.com/2018/a/1.html location /2019/a { root /var/www/html; index 1.html index.hml; rewrite ^/2019/(.*)$ /2018/$1 permanent;} location /2018/a { root /var/www/html; index 1.html index.htl;} 例3: # http://www.qf.com/a/1.html ==> http://jd.com location /a { root /html;if($host ~* www.qf.com ){ rewrite .* http://jd.com permanent;}} 例4: # http://www.qf.com/a/1.html ==> http://jd.com/a/1.html location /a { root /html;if($host ~* qf.com ){ rewrite .* http://jd.com$request_uri permanent;}} 例5: # http://www.tianyun.com/login/tianyun.html ==> http://www.tianyun.com/reg/login.html?user=tianyun location /login { root /usr/share/nginx/html; rewrite ^/login/(.*)\.html$ http://$host/reg/login.html?user=$1;} location /reg { root /usr/share/nginx/html; index login.html;} 例6: #http://www.tianyun.com/qf/11-22-33/1.html ==> http://www.tianyun.com/qf/11/22/33/1.html location /qf { rewrite ^/qf/([0-9]+)-([0-9]+)-([0-9]+)(.*)$ /qf/$1/$2/$3$4 permanent;} location /qf/11/22/33 { root /html; index 1.html;}
2、set 指令

set 指令是用于定义一个变量,并且赋值

应用环境:

server,location,if 

应用示例

例8: #http://alice.testpm.com ==> http://www.testpm.com/alice#http://jack.testpm.com ==> http://www.testpm.com/jack[root@nginx-server conf.d]# cd /usr/share/nginx/html/[root@nginx-server html]# mkdir jack alice[root@nginx-server html]# echo "jack.." >> jack/index.html[root@nginx-server html]# echo "alice.." >> alice/index.html 本地解析域名host文件 10.0.105.202 www.testpm.com 10.0.105.202 alice.testpm.com 10.0.105.202 jack.testpm.com 编辑配置文件: server { listen 80; server_name www.testpm.com; location / { root /usr/share/nginx/html; index index.html index.htm;if($host ~* ^www.testpm.com$){break;}if($host ~* "^(.*)\.testpm\.com$"){set$user$1; rewrite .* http://www.testpm.com/$user permanent;}} location /jack { root /usr/share/nginx/html; index index.html index.hml;} location /alice { root /usr/share/nginx/html; index index.html index.hml;}}
3、return 指令

return 指令用于返回状态码给客户端

server,location,if 

应用示例:

例9:如果访问的.sh结尾的文件则返回403操作拒绝错误 server { listen 80; server_name www.testpm.cn;#access_log /var/log/nginx/http_access.log main; location / { root /usr/share/nginx/html; index index.html index.htm;} location ~* \.sh$ {return403;}} 例10:80 ======>443 :80转443端口 server { listen 80; server_name www.testpm.cn; access_log /var/log/nginx/http_access.log main;return301 https://www.testpm.cn$request_uri;} server { listen 443 ssl; server_name www.testpm.cn; access_log /var/log/nginx/https_access.log main;#ssl on; ssl_certificate /etc/nginx/cert/2447549_www.testpm.cn.pem; ssl_certificate_key /etc/nginx/cert/2447549_www.testpm.cn.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ssl_prefer_server_ciphers on; location / { root /usr/share/nginx/html; index index.html index.htm;}}[root@nginx-server ~]# curl -I http://www.testpm.cn HTTP/1.1 301 Moved Permanently Server: nginx/1.16.0 Date: Wed, 03 Jul 201913:52:30 GMT Content-Type: text/html Content-Length: 169 Connection: keep-alive Location: https://www.testpm.cn/ 
4、last,break详解
在这里插入图片描述
[root@localhost test]# cat /etc/nginx/conf.d/last_break.conf  server { listen 80; server_name localhost; access_log /var/log/nginx/last.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm;} location /break/ { root /usr/share/nginx/html; rewrite .* /test/break.html break;} location /last/ { root /usr/share/nginx/html; rewrite .* /test/last.html last;} location /test/ { root /usr/share/nginx/html; rewrite .* /test/test.html break;}}[root@localhost conf.d]# cd /usr/share/nginx/html/[root@localhost html]# mkdir test[root@localhost html]# echo "last" > test/last.html[root@localhost html]# echo "break" > test/break.html[root@localhost html]# echo "test" > test/test.html http://10.0.105.196/break/break.html http://10.0.105.196/last/last.html 

注意:

- last 标记在本条 rewrite 规则执行完后,会对其所在的 server { … } 标签重新发起请求; - break 标记则在本条规则匹配完成后,停止匹配,不再做后续的匹配; - 使用 proxy_pass 指令时,则必须使用break。 

nginx 日志配置

1、nginx 日志介绍

nginx 有一个非常灵活的日志记录模式,每个级别的配置可以有各自独立的访问日志, 所需日志模块 ngx_http_log_module 的支持,日志格式通过 log_format 命令来定义,日志对于统计和排错是非常有利的,下面总结了 nginx 日志相关的配置 包括 access_loglog_formatrewrite_logerror_log

# 设置访问日志 access_log path;# 关闭访问日志 access_log off;
  • path 指定日志的存放位置。

作用域:

可以应用access_log指令的作用域分别有httpserverlocation,也就是说,在这几个作用域外使用该指令,Nginx会报错。

access_log /var/logs/nginx-access.log 

该例子指定日志的写入路径为/var/logs/nginx-access.log,日志格式使用默认的combined

2、log_format 指令

Nginx 预定义了名为 combined 日志格式,如果没有明确指定日志格式默认使用该格式:

log_format combined '$remote_addr - $remote_user [$time_local] ''"$request" $status$body_bytes_sent ''"$http_referer" "$http_user_agent"';

如果不想使用Nginx预定义的格式,可以通过log_format指令来自定义。

语法

log_format name [escape=default|json] string ...;
- name 格式名称。在 access_log 指令中引用。 - escape 设置变量中的字符编码方式是`json`还是`default`,默认是`default`。 - string 要定义的日志格式内容。该参数可以有多个。参数中可以使用Nginx变量。 

log_format 指令中常用的一些变量:

$remote_addr, $http_x_forwarded_for#记录客户端IP地址$remote_user#记录客户端用户名称$request#记录请求的URL和HTTP协议$status#记录请求状态$body_bytes_sent#发送给客户端的字节数,不包括响应头的大小$bytes_sent#发送给客户端的总字节数$connection#连接的序列号$connection_requests#当前通过一个连接获得的请求数量。$msec#日志写入时间。单位为秒,精度是毫秒。$http_referer#记录从哪个页面链接访问过来的,可以根据该参数进行防盗链设置$http_user_agent#记录客户端浏览器相关信息$request_length#请求的长度(包括请求行,请求头和请求正文)。$request_time#请求处理时间,单位为秒,精度毫秒; 从读入客户端的第一个字节开始,直到把最后一个字符发送给客户端后进行日志写入为止。$time_iso8601#ISO8601标准格式下的本地时间。$time_local#通用日志格式下的本地时间。

自定义日志格式的使用:

access_log /var/logs/nginx-access.log main log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status$body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';
注意: 注:如果Nginx位于负载均衡器,nginx反向代理之后,web服务器无法直接获取到客户端真实的IP地址。 $remote_addr获取的是反向代理的IP地址。反向代理服务器在转发请求的http头信息中,可以增加X-Forwarded-For信息,用来记录客户端IP地址。 

使用log_format指令定义了一个main的格式,并在access_log指令中引用了它。客户端发起请求访问:http://192.168.246.154/,看一下请求的日志记录:

10.0.105.207 - - [01/Jul/2019:10:44:36 +0800]"GET / HTTP/1.1"3040"-""Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36""-"

我们看到最终的日志记录中$remote_user$http_referer$http_x_forwarded_for都对应了一个-,这是因为这几个变量为空。

面试时:注意日志里面的ip地址一定要在第一列。

3、error_log 指令

错误日志在Nginx中是通过error_log指令实现的。该指令记录服务器和请求处理过程中的错误信息。

语法

配置错误日志文件的路径和日志级别。

error_log file[level]; Default: error_log logs/error.log error;

file 参数指定日志的写入位置。

level 参数指定日志的级别。level可以是debug, info, notice, warn, error, crit, alert,emerg中的任意值。可以看到其取值范围是按紧急程度从低到高排列的。只有日志的错误级别等于或高于level指定的值才会写入错误日志中。默认值是error

扩展日志级别: debug级别:低级别,包含的信息非常详细 info级别:稍微的高一点了。用的多一些。 notice 和warning notice:相当于提示 warning:警告 和warn 一样 err和error 一样,记录错误日志 crit:比较严重了 alert:告警,很严重 emerg: 恐慌级别, 级别最高的 

基本用法

error_log /var/logs/nginx/nginx-error.log 

配置段: http, server, location作用域。

例子中指定了错误日志的路径为:/var/logs/nginx/nginx-error.log,日志级别使用默认的 error

4、nginx 日志配置总结

Nginx中通过access_logerror_log指令配置访问日志和错误日志,通过log_format我们可以自定义日志格式。

详细的日志配置信息可以参考Nginx官方文档

单独开启server的访问日志

[root@nginx-client ~]# cd /etc/nginx/conf.d/[root@nginx-client conf.d]# vim nginx.conf server { listen 80; server_name localhost; charset koi8-r; access_log /var/log/nginx/test.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm;} location /admin { root /usr/share/nginx/html; index index.html index.htm;}}[root@nginx-client conf.d]# nginx -s reload 访问 [root@nginx-client conf.d]# curl -I http://192.168.1.10
在这里插入图片描述

当我们访问的这个server的时候日志将会输出到test.access.log.

作业:编写nginx日志切割脚本
[root@nginx-web script]# cat nginx_log.sh #!/bin/bash date=`date +%F -d -1day` log_dir=/var/log/nginx/ log_name=access.log [ -d $log_dir ] && cd $log_dir || exit 1 [ -f $log_name ] || exit 1 /bin/mv $log_name $log_name.${date} /usr/sbin/nginx -s reload tar czf $log_name.${date}.tar.gz $log_name.${date} && rm -rf $log_name_${date} #delete cd $log_dir || exit 1 find ./ -mtime +7 -type f -name *.tar.gz | xargs rm -rf 

nginx 的平滑升级

1、为什么要对 nginx 平滑升级

随着 nginx 越来越流行,并且 nginx 的优势也越来越明显,nginx 的版本迭代也来时加速模式,1.9.0版本的nginx更新了许多新功能,例如 stream 四层代理功能,伴随着 nginx 的广泛应用,版本升级必然越来越快,线上业务不能停,此时 nginx 的升级就是运维的工作了

nginx 方便地帮助我们实现了平滑升级。其原理简单概括,就是:
(1)在不停掉老进程的情况下,启动新进程。 (2)老进程负责处理仍然没有处理完的请求,但不再接受处理请求。 (3)新进程接受新请求。 (4)老进程处理完所有请求,关闭所有连接后,停止。 这样就很方便地实现了平滑升级。一般有两种情况下需要升级 nginx,一种是确实要升级 nginx 的版本,另一种是要为 nginx 添加新的模块 
2、Nginx信号简介
主进程支持的信号
- TERM, INT: 立刻退出 - QUIT: 等待工作进程结束后再退出 - KILL: 强制终止进程 - HUP: 重新加载配置文件,使用新的配置启动工作进程,并逐步关闭旧进程。 - USR1: 重新打开日志文件 - USR2: 启动新的主进程,实现热升级 - WINCH: 逐步关闭工作进程 
工作进程支持的信号
- TERM, INT: 立刻退出 - QUIT: 等待请求处理结束后再退出 - USR1: 重新打开日志文件 
3、nginx 平滑升级实战

1、查看现有的 nginx 编译参数

[root@nginx-server ~]# /usr/local/nginx/sbin/nginx -V

按照原来的编译参数安装 nginx 的方法进行安装,只需要到 make,千万不要 make install 。如果make install 会将原来的配置文件覆盖

[root@nginx-server ~]# cd /usr/local/nginx-1.16.0/[root@nginx-server nginx-1.16.0]# ./configure --prefix=/usr/local/nginx --group=nginx --user=nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/tmp/nginx/client_body --http-proxy-temp-path=/tmp/nginx/proxy --http-fastcgi-temp-path=/tmp/nginx/fastcgi --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre --with-http_realip_module --with-stream --with-http_image_filter_module[root@nginx-server nginx-1.16.0]# make
3、备份原 nginx 二进制文件

备份二进制文件和 nginx 的配置文件(期间nginx不会停止服务)

[root@nginx-server nginx-1.16.0]# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_$(date +%F)

4、复制新的nginx二进制文件,进入新的nginx源码包

[root@nginx-server nginx-1.16.0]# cp /usr/local/nginx-1.16.0/objs/nginx /usr/local/nginx/sbin/

5、测试新版本的nginx是否正常

[root@nginx-server nginx-1.16.0]# /usr/local/nginx/sbin/nginx -t

6、给nginx发送平滑迁移信号(若不清楚pid路径,请查看nginx配置文件)

[root@nginx-server ~]# kill -USR2 `cat /var/run/nginx.pid`

7、查看nginx pid,会出现一个nginx.pid.oldbin

[root@nginx-server ~]# ll /var/run/nginx.pid* -rw-r--r-- 1 root root 5 Jul 111:29 /var/run/nginx.pid -rw-r--r-- 1 root root 5 Jul 1 09:54 /var/run/nginx.pid.oldbin 

8、从容关闭旧的Nginx进程

[root@nginx-server ~]# kill -WINCH `cat /var/run/nginx.pid.oldbin`

9、结束工作进程,完成此次升级

[root@nginx-server ~]# kill -QUIT `cat /var/run/nginx.pid.oldbin`

10、验证Nginx是否升级成功

[root@nginx-server ~]# /usr/local/nginx/sbin/nginx -V
4、nginx 错误页面配置

nginx错误页面包括404 403 500 502 503 504等页面,只需要在server中增加以下配置即可:

#error_page 404 403 500 502 503 504 /404.html; location = /404.html { root /usr/local/nginx/html;}
注意:
/usr/local/nginx/html/ 路径下必须有404.html这个文件!!! 404.html上如果引用其他文件的png或css就会有问题,显示不出来,因为其他文件的访问也要做配置; 为了简单,可以将css嵌入文件中,图片用base编码嵌入;如下: 

base64 图片—转码

[root@localhost html]# vim 404.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" /> <title>404</title> <style> .layout-table{display:table;height:100%;width:100%;vertical-align: middle;margin-top:150px} .layout-table-cell{display: table-cell;vertical-align: middle;text-align:center} .layout-tip{font-size:28px;color:#373737;margin: 0 auto;margin-top:16px;border-bottom: 1px solid #eee;padding-bottom: 20px;width: 360px;} #tips{font-size:18px;color:#666666;margin-top:16px;} </style> </head> <body> <div> <div> <div> <div> <img src="data:image/png;base64,/9j/4AAQSkZJRgABAQEASABIAAD/7RMIUGhvdG9zaG9wIDMuMAA4QklNBCUAAAAAABAAAAAAAAAA AAAAAAAAAAAAOEJJTQQ6AAAAAADXAAAAEAAAAAEAAAAAAAtwcmludE91dHB1dAAAAAUAAAAAUHN0 U2Jvb2wBAAAAAEludGVlbnVtAAAAAEludGUAAAAASW1nIAAAAA9wcmludFNpeHRlZW5CaXRib29s AAAAAAtwcmludGVyTmFtZVRFWFQAAAABAAAAAAAPcHJpbnRQcm9vZlNldHVwT2JqYwAAAAVoIWg3 i75/bgAAAAAACnByb29mU2V0dXAAAAABAAAAAEJsdG5lbnVtAAAADGJ1aWx0aW5Qcm9vZgAAAAlw cm9vZkNNWUsAOEJJTQQ7AAAAAAItAAAAEAAAAAEAAAAAABJwcmludE91dHB1dE9wdGlvbnMAAAAX AAAAAENwdG5ib29sAAAAAABDbGJyYm9vbAAAAAAAUmdzTWJvb2wAAAAAAENybkNib29sAAAAAABD bnRDYm9vbAAAAAAATGJsc2Jvb2wAAAAAAE5ndHZib29sAAAAAABFbWxEYm9vbAAAAAAASW50cmJv b2wAAAAAAEJja2dPYmpjAAAAAQAAAAAAAFJHQkMAAAADAAAAAFJkICBkb3ViQG/gAAAAAAAAAAAA R3JuIGRvdWJAb+AAAAAAAAAAAABCbCAgZG91YkBv4AAAAAAAAAAAAEJyZFRVbnRGI1JsdAAAAAAA AAAAAAAAAEJsZCBVbnRGI1JsdAAAAAAAAAAAAAAAAFJzbHRVbnRGI1B4bEBSAAAAAAAAAAAACnZl Y3RvckRhdGFib29sAQAAAABQZ1BzZW51bQAAAABQZ1BzAAAAAFBnUEMAAAAATGVmdFVudEYjUmx0 AAAAAAAAAAAAAAAAVG9wIFVudEYjUmx0AAAAAAAAAAAAAAAAU2NsIFVudEYjUHJjQFkAAAAAAAAA AAAQY3JvcFdoZW5QcmludGluZ2Jvb2wAAAAADmNyb3BSZWN0Qm90dG9tbG9uZwAAAAAAAAAMY3Jv cFJlY3RMZWZ0bG9uZwAAAAAAAAANY3JvcFJlY3RSaWdodGxvbmcAAAAAAAAAC2Nyb3BSZWN0VG9w bG9uZwAAAAAAOEJJTQPtAAAAAAAQAEgAAAABAAEASAAAAAEAAThCSU0EJgAAAAAADgAAAAAAAAAA AAA/gAAAOEJJTQQNAAAAAAAEAAAAWjhCSU0EGQAAAAAABAAAAB44QklNA/MAAAAAAAkAAAAAAAAA AAEAOEJJTScQAAAAAAAKAAEAAAAAAAAAAThCSU0D9QAAAAAASAAvZmYAAQBsZmYABgAAAAAAAQAv ZmYAAQChmZoABgAAAAAAAQAyAAAAAQBaAAAABgAAAAAAAQA1AAAAAQAtAAAABgAAAAAAAThCSU0D +AAAAAAAcAAA/////////////////////////////wPoAAAAAP////////////////////////// //8D6AAAAAD/////////////////////////////A+gAAAAA//////////////////////////// /wPoAAA4QklNBAAAAAAAAAIAAjhCSU0EAgAAAAAACgAAAAAAAAAAAAA4QklNBDAAAAAAAAUBAQEB AQA4QklNBC0AAAAAAAoAAgAAAAoAAAANOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0E HgAAAAAABAAAAAA4QklNBBoAAAAAAzcAAAAGAAAAAAAAAAAAAAMgAAAFPwAAAAFy1wAAAAEAAAAA AAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAFPwAAAyAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAA AAAAAAAAAAAAAAAQAAAAAQAAAAAAAG51bGwAAAACAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0 MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAAyAAAAAA UmdodGxvbmcAAAU/AAAABnNsaWNlc1ZsTHMAAAABT2JqYwAAAAEAAAAAAAVzbGljZQAAABIAAAAH c2xpY2VJRGxvbmcAAAAAAAAAB2dyb3VwSURsb25nAAAAAAAAAAZvcmlnaW5lbnVtAAAADEVTbGlj ZU9yaWdpbgAAAA1hdXRvR2VuZXJhdGVkAAAAAFR5cGVlbnVtAAAACkVTbGljZVR5cGUAAAAASW1n IAAAAAZib3VuZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0 bG9uZwAAAAAAAAAAQnRvbWxvbmcAAAMgAAAAAFJnaHRsb25nAAAFPwAAAAN1cmxURVhUAAAAAQAA AAAAAG51bGxURVhUAAAAAQAAAAAAAE1zZ2VURVhUAAAAAQAAAAAABmFsdFRhZ1RFWFQAAAABAAAA AAAOY2VsbFRleHRJc0hUTUxib29sAQAAAAhjZWxsVGV4dFRFWFQAAAABAAAAAAAJaG9yekFsaWdu ZW51bQAAAA9FU2xpY2VIb3J6QWxpZ24AAAAHZGVmYXVsdAAAAAl2ZXJ0QWxpZ25lbnVtAAAAD0VT bGljZVZlcnRBbGlnbgAAAAdkZWZhdWx0AAAAC2JnQ29sb3JUeXBlZW51bQAAABFFU2xpY2VCR0Nv bG9yVHlwZQAAAABOb25lAAAACXRvcE91dHNldGxvbmcAAAAAAAAACmxlZnRPdXRzZXRsb25nAAAA AAAAAAxib3R0b21PdXRzZXRsb25nAAAAAAAAAAtyaWdodE91dHNldGxvbmcAAAAAADhCSU0EKAAA AAAADAAAAAI/8AAAAAAAADhCSU0EEQAAAAAAAQEAOEJJTQQUAAAAAAAEAAAADThCSU0EDAAAAAAJ +QAAAAEAAACfAAAAXwAAAeAAALIgAAAJ3QAYAAH/2P/tAAxBZG9iZV9DTQAC/+4ADkFkb2JlAGSA AAAAAf/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwM DAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwM DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAXwCfAwEiAAIRAQMRAf/dAAQACv/EAT8AAAEF AQEBAQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAAB BAEDAgQCBQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHx Y3M1FqKygyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm 9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS 0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0 pbXF1eX1VmZ2hpamtsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8AxEkklMwqSSSSUpJJJJSk kkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklP/0MRJJJTMKkkkklLPe1jS952tbqSrb+ldXrys fCfg3DLy6xbj4/tNjmE7d1jN+3F2f4T7U+r0v8L6dn6NS6RjdQyMyz9mUDJ6jjY1uThUuNYHrtfj 4tN7vtP6B32NuZbmVss/7UUULrfqxV9YOjYAyevYtuR1N9Jq+02W02Fp9a97Kbsq7JZsrf61Gytt v/gibKVGl8Y2HiLarabraLm+ndRY6q1kh0PYdrhvb7XKK2876s/Wi/qGZkDpdzm35FtrXb8YSHu3 NO37V7Vg5dzcLqbuk5rXY2ewtDqX7TBe1tlbfVpfbV72PZ+ciCO6CD2ZpJJIrVJJJJKUkkkkpSSS SSlJJJJKUkkkkp//0cRJJJTMKkkkklPSf4vP/FOf/CN//n7CXcfWNnRrulvxutZNWJiXvYBbc+tj fUY4ZFMfat2Pa7fR6no2strt2fparKlw/wDi9IH1nJOg+w3/APn3CXoHU+n4XVMU42VBaHNsreI3 12MO6q+kvD2ttqd/J/4z9Gop3ZoWWWFULLzn1Xs+pP1aw7cbF67h3OyLTddY/Jx2guIiKqaXV1U1 N/0bGrnvr1b9Ueq5tWZ05rcrqjHs9XPocfRDKjva1z2/oMy9/wDM/o9/pU/z136LHpsF9cOgW9M6 jiZ1ltN7sllmObK2Gux23bc197d9tbtjW+nvasUknnVLEJSiJTjwS6xvi/5yshAkRE8Q6S2/BZbn 1V+rf7eybvWe+nDx2w+2uNxsdrXUw2Nez2s/SW+3/Rf6RYrGW2vZVSw2W2ODK6xy57jsYz+04ruW Ob0fP6F9V8QlxFoyep3NBh7y2x7GOeB+fc31dr/5uqnFUhKwBwOq/Vo0fWOroXTnuudcxj2vvLdJ 9R1r3mptf6OtlW/6P/BrY/5h9Jda/p9XV3HqtdYtfURWQGkxvdjN/TNr3f8ADrWqpLv8Yd1rmO2s 6aNjy07dxsaDtfGzftWVivd/45+R/KDmn4DHo/8AIJtn8LTQ/GnkMjDysfMfgWVk5ddvoek3XdYT srbXx7btzPT/AK66jrP1IxeldBt6g7Jtsy6K2F7Bs9EvLmMftHpet6fu9n6RamXgUYf1k6n9Zs2s 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 XNxm7/V2O9S5lTLNmz9H/wBxvV9RZZAPKckkkkkkmSSTM+MootuN6RnOMAM9xY2uXFu82tddU2re 0e7063ep6np+j/N3enYq+RQ7HsFbiHFzGWAgOAh43N0sbXZ/nMQjJ5JPJ1JPOrv85OSSSSSSeSTJ +8pKWSSSSQ//08RJJJTMKbFtpqucMlrn4uRTZjZIr1sbXYa7G5ON/wB2cTJx8fIq/qWf4T013/Tv rp9UsDp+Lgsy7XNxKa6Gu+yZIkVtbWHbfs/t+ivOkkDEFcJEPp3/AI4H1V/7lW/+wuV/7zrAd9a+ mYlGNh0Zrs/Ebk0vsc/EyKshgbczKvyrLPRbRmeo5rvWYynHv/Set+n/AJpcgkhwBPGXp8zqX1W6 p06jp2d1DJpf0r2YGbTi3Raw1tqY/IxX41rdzP5q9n6P1fS+0Y/2f1/Rp5gHnUOguaHAOaHBpLW2 trti2tlrR6rGW/pGfnpJIgUgm1JJJIrVJJJJKUkkkkpSSSSSlJJJJKUkkkkp/9TESSSUzCpJJJJS kkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSU//Z/9sAQwABAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQECAgEBAgEBAQICAgICAgICAgECAgICAgICAgIC/9sAQwEBAQEB AQEBAQEBAgEBAQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgIC/8AAEQgC+gUAAwERAAIRAQMRAf/EAB8AAQAABgMBAQAAAAAAAAAAAAAKCQsIBwECAwQGBf/E AHsQAAEDAwMBAwUFCRYPDAUKBwABAgMEBQYHEQghCRIxE0EKYVEUIvBxFZEy0ZYZObh4VxahOJK2 gVMXIzdYd9TXsXa3lxhzlEJWGlKzctPWJVXYOpPh8VmYM3U0stK1wWLVJDUowsMnNkNjorQpRUZm eYKIJkdkZWej/8QAHgEBAAICAwEBAQAAAAAAAAAAAAYFAQQCAwcICQr/xABiEQEAAQIDBAMICg0I CAQFAgcAAQIRAwQhMQUS8EFRYZFxBiLRoYET4bHBMlIHcxZUkjWyNNOz8XIUFUJiM5ODUyMYCFXC 0oJjJBlWlJXVw6LjJUOj4nRE8jYJJkVkZXWF/9oADAMBAAIRAxEAPwCV+eoPNwAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAa3T2p6uv43t+H34557nOsybAAAAAB8Xw+/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AACqkpbZR1t2vdbTWmzWu2VV5u12rJYo6K12Sho5q+vuVXL3lSKlhooXzSK7uo1Inoq+8eqcp4cO irExJiKKab7eqJvfbbZfXoi+usuNETVXGHhxM1YlUR13mZmI69tu56ZmW1xI4yazduX2lGCcctOq ysxvT1J6+75Dk81JPUUGi3GXFb3RuzbUKut9NSStqctrFutspKKOdY4K/Jcnsdnqa+32+SOsoPPd 5Z2rPZrExb2wqfFw410oiarbemrbN+u3RF53u7JUZLKxh2/pa/GrmbXmqdbadFOyNbeeVXy45cdt GeJWhel3G/j/AIRa9PtJdIsXpcTwjFrTF3YqWiilmq7jdbnVK3yl7ye5XiquNzu1zqnS1t1ul1r7 lXT1FZW1VRLX+m/PPN2/zzz7rNYFjvKHtL+z34VVNXa+UvMLQzSHJaKGCpqMCv8Anlpr9UW0lTbn 3SlrY9K8emrMjqKKWhSOSOaO2Pik90UzGPc+qp2zBl7jHyw4080dLYNaeKmteC64abSXi4Y3UZRg l4ZcIrRk9tprdW3DF8mtsyR1uJ5NDbrtaKt9uudPSViUd3oKz3P7mrqSeYIYX01tNuyj0A9faA6T qnxJxo5gN9vt+HnAkR+iQdkjg3MLXDNufXIKxT5BpJxLzLGMe0bw2voKeoxfUDkmlDSZfLe8hq5K lyz23CLJV4rc22paZGV90zWw1cta2ms1wtd6zfZHREW88zs9M8zMsRERxW/Wm+zm/PfVNhrUb3l8 XO27zttt1TZE6eZEROn7Kruq4ZcgAACCp9N0/AOcNftprv8AuP5wBDkaA/gedBv0psH/AOiYz0jI fY3I/J0/avP8593Z75SftqmVTYa4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8P2foL8xfYoiLxMxsp2sXjYl5dovre3F dOrJoxj1ejL/AJ+33fmb4e9HU0OEWWv8nQ2xVeiPjbcr5SORzmL3XQY/PC5XRVb2uo9/5z1GXjJ0 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 fE8nPTh87XWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABLO7Tn87/AEi/bjl/4n8fI/4SfcuT/LxPaw194O/v87+T R7dSsR6OfnP6Vfpc4J+Je3kPSudtXf8AdqZGDAAAAAAAAAAAAAAAAAAAAAAAAtG5w85eNPZ08csv 5QcqM8jwzTzGZaW0WuhoqZLpmmoWc3WGvlxrTTTTGGVEcuVZxcvk2ufDTtfFTUdHQ193u1ba7Jab xeLeFLb7VrtfuYPb1a+WLTDCcbr9MOLuA3qa66V6DUl3mktFvnjZWWyp115C5PTp7nyDOlt9wqqe l7saW/HqGvdZcfpay53W/XrLdnKZTHzmLGDl6Jrq0vPRTF7TVVNptT2z2R402hr5nM4GUwasbHri mmnuzOtoiL6zNvbmZjWX33H7QLDuPWEuxPHUbd7vdX01TnGXVFM2Gryq5UqTpDHHG5VWgx+lbNOl HTI9/k0qZpZVknmnnfPN35DC3dgeqojjxMT3+J8KqJm0R0xTF762jtmdsIzucxM/izi4mlOH7zD+ DE7ZnW01zps129EXnNG7l8XK7dd1VVXqvXdy9fFenw3NvXr57vPbrM6to1028+5z06DIAAAAAAAA AAAAADyvkYxtdUTyrFTW+Jk88ne7qNiViOe759N1Tdiomyou6pum+zuVMdV9Ztp6fJ7fenje15id abT556J0nZ5478RwnYLcRMl41cNKnUvUK3stmoXKrJrZrLLbZotrvjmkz8TtNs0gxO9PZXSsfXOt fytkT43Mpqqgfns1qrqeOqtk7Ug2/s3Rms3Vg4f7vLRwXvpNcVVcdUbdKpiIjbpGmutUy3JlKsrl ZxK/f5mYrtO2KLWopnWdYiOKf2pnbN5md8nh8z/1vWvq8/46lNFrabO519HO2Fxz7YAAAAKen203 12bl5+2jjx9jDoOegbj+xGU/lfwmIg++PspnP5H8HSl5lgrwDz1Tu5TTLu9F/Mmosb1Y/d87Y07r 0cncX33jv038+ymabX12Rt72t+vq52zjonnvfi9mU47sUuAWMcz+RuS6h60Y/W5JoTxtjxm83PGr lQeXwrVDV671dTVYjgmRsuVtkpMqxe22i2Vt3vtobIjpXV+N012iltV2lorhT76z1WUy0YGFVFOY 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 vp/U9+ND6Zu/+P7DAXK3sP8AkZxA43aicl8+1u465bi+ndZh1Fc8b0/vGrtZlVwdmGYWXD6B9sbl OjVponeRrr3TzTpLVxKlPFK6PysiMhfO/it/tnfF78bHxh7h+Lvcfgfv7du8d/0ZuvDzGewt30Zb D/M8tmM1XGJOX3pmsXxqMCqKOHDqvXNMVcNN60Q8OP7OXhx4AeDO9PCjfebylWS3XThVV04WJxVV RjZnL5SmKeur1mYoqmJi0URXPFeIir7Ls29v4Mt+2VV/99uYou6ImypgWlS9NlXdNlRevn3T1r96 eD0TG7arztxa581Me5z0/J2/fshGz91R9vi7e57XpvuLpUAAAAAAAAAAAAAAAAAAAiN/RpNl5Bcy kXf86TRXp5tlzHUdHbpv1X3qfDdVjnhJ+5yXfxP/AA1/4OX9dntdIpw/bxO3nr0m8YA1ERE2322T bfqv8/zqvj4/fesiNMTF7zeZt3vR5u7PYlPPt8+me/OzI6Kimp6yGSmq6eCqp5EZ36eoijmhkVj0 e3ykUrHI5Ee1jk332VN/FEUxHFFV407bzfp7PPeemLdMu/POvsc3edLVa2psltoERPBEo6ZE23Xz eS6eb5vq3XF8SNlradM9vsW9PfLRMzM6zPXzz3W/ku2f4Oof5HT/ANrHFi9ndnyMWjqg+S7Z/g6h /kdP/axxYvZ3Z8haOqD5Lteyp8m0Oy9FT3HT7KnXxTyfrX5q+vdxYvZ3Z8hw09Uc88639UUMUEUc EEbIYYY2RQwxMbHFFFGndjjjYxESONrUaiNTZETZNtkQ5RfbPvp2+fy+ee/OdmkbOeeZv2AAHwT7 /wD0ffmJvabTrz2+76ek59v2PO6nxNfsrnSIqK1feSyMT3qvVOjXJunVN/b038EEcWuttmzz37/R t80zKO3XmfY5uJEidUfJum228sip0VfFFd1T4ezZOlNU9UeXyefs1JDfaO5PQ4b2w/YPZDWyxxMd lfNzFmSVPlGU6VOoek2nOnNvY2WFVclVLXZXBFE1Wqx0ksbHuax8j0vd20TXubf9OmkZeen9XErq nW+y1PT3dJlTZ2qKN67mnXbjX6vGoimNOu87b9Wk63nzMXdZd9uitT1oiJ0339a7p/Zerd1FE20n WZn/ADe5Ec3mbnX0ezMeTzuZkAHmX/T6/X8OnqUxMTbSemPb8gg7PSUbTSU3JriZf2LP7uvWiOpN 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 WtTdfO9ytZv16bqi7e3ZfYpiJmYvMadl5t1dHt26uuTnnue1352j09rV8PByKq9XJ0Tbx979/wDj mZiJpqi+sxb7btns7vTab506/N3+3vd3slCE+lN2+nuWR8F6KWdWLU4Zy5p/JeSVWyMdVcbWqvlO /wC98V36Lsm+++6IS7wVm1Geq6pwZ69nrvLG2emO1FPCSji/NNdKoxKe7w9k7bTHltN4lfhBrDNy C4ZcWdbK2WGS8akaEaVZTk8cFbJcI6LM67DLT97S0ur5Y2vrJqPKG3ekkkc1rnyUr1c1q7oRfO4H 5rnsfL0x4mFXXRGlvFiauGYi87YiJjbpPfmJFlMb85yuBjzrVi0U1T2VTE8UbI1iYmJ0237b3RHS 2AABDXekxYzDJxx4p58romz2TknUYLEjqieOV8WbaR6kZHO2ODZYpW97TOBznvRZI1Rvk9mvnckj 8GKpjNZzDvpVhX9MVxETbp29ey+qg3/T/s2Xrtfgxoie9NOJfp2XiO3W/RMzCJpL3624RqzueTdT 7e+VVcj0n2/mJ3WojERE3Xbze923l2ttdJ555lFaYtTbq07nFr6dvc1na7TDLrR6rK6JG7q2Jkm/ e6r3nzN7qNVvX3sKruir47KjU2cuYiJ6bEW6ZtF4jz29lGg+jf4fW47wJ1GyarlWWn1N5S6mZjam upoYfc9utGBaP6ZyUzZY66V1Yz5W07ukvfkZTORah0aQOZGyqqYZ4RVxVn6Kba4eFRTPberErv3K o6Z6NdbRLPB6mqMhiV1TaMXFqqiOq1qOvW/Be/bbW10/soV4AAJZnbJaoQaSdl1zNvk1Mla7L9Kq jRaGj3i8pM/Xm/WnRKSaGKZ35stPS6g1NY9Go5yRUMj+6vcU39y4Prt55WmJtEYnFPTphzVXMTr0 8M97j0ibRE6G88T1e7s5M68VE0x/pzwR7d7eW8yxfRhKeKm46csY45/Ld3kDYGLtH3Gt7mkeFIiN d5R3f9u/T9ktPCeZqzGDFtfVdOm2qvs57L3Vvg1H+x5jtxP8MRrpGukz6ds6zMTUj026qxF6bp30 /wC0ns/7P3/qVVjlNpiJnSfx9sdXn7si8Xr83f7ezz9kzLvp/VM/DoZ0657nsmnXPc9k76f1TPw6 DTrnueyadc9z2Tvp/VM/DoNOue57Jp1z3PZO+n9Uz8Og0657nsmnXPc9k8o1OquZt0TdHb+Kq3w2 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 AIk/5T9M7y/nKPqx5D6uN2p/3ecD/eH02/UI/QW6/wCar/iT/lP0zvL+co+rHkPq43an/d5wP94f Tb9Qj9Bbr/mq/wCJP+U/TO8v5yj6seR0VHbldqjFBJIzXnAlc1YkTvaD6bbe/mbGqrtQ+x2/43n6 75p3Fuu/7qv689c9nZ5/SRvneXTiUfVjt73ZzdNa7GvtKebvLzmvlWjvIbVHF8u0/tXG3PdSKO0W bTDDsTrW5dZdTtFMatta+72SmZO+lZbMyvbVgVyxvdLG5yK6Jrlq977syOTyUY2BRVGJ6ymm81TP izFc2tM/sxr29+9lubeObzuarw8euKsOMLjiIpiPGiqmnbHXFXmjtlFFkYSMAADjM+NFNrxN/Nby 87ZIGjXLtqe01w3knyl06xjW3B7fimmPJLXrTfDqGbRLT2uqaLEcJ1czbFsaoquvqaJZa+pis1mo o5J5VWSZzFkeqvc5XTjL7k3bXlsviV4dc14mHh1T49taqYqmdnTfZ0d28Oxd87xpx81h010cODiV Ux4utoqqiL6z8H8erHH1cbtUOv8A7+sC8Om+g+m3Tx69KJPV8Nzt/Qe6/wCZrn/TnyQ6/wBM7z/n aPqwsc5IcnNdOX2plDrByHym0Zdnltweyac0V1smJ2TEaOPEbDkGX5JbKKS12SJkU9S265pfpXTv 70jkqmxqqRwxMTeyuVwMlhVYOXpmmiqqatZmdZiInWeymOb30sfMY+axfXZiqK64pimLRa0RNU9H bVM+nbticEHe6QDq8m9JHSMlVjlaibeTjkb86rFVWvTqitRu6b7L50Xqq5ibRbp/Hz2d2WLbe2PL r7nlcZG1r3uf8oyN7yN6JTxLsqN2Vd1f513X1bqZibXvrf2euJ6+dZnFp6/c9qeem83mStrHIiPu ErlRGtRyQRMVGsd3mfOPTdUcjV67+HXfruvF5nb6e/7d/wAWsy4dO3r9rr2e7Ou1z2m8n5J1Qro0 YxiM8m1qe9RUV3vXdFVN+nh75engYvtvN59Hb1RfuzNtNelmYvExsvbZfovfbVMa97qtHSd2VEaj ZlRY292F3caro0a5yxefZ3d386dV6+szExGzo1jZ5L+fpIi14iItOnTsj027sdzW/YnT1+H3yu+i nzDiy87YqhidK173bbNdLBG9WJ735xGvbsuzGfhW+ZFRc329vev09cTfb0+W/Gmnh4tb8W3ov37b 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 FMj5L/gyuc325nKn7IDUw9Oy33Hk/kcH8HS87xvurP8Ay1f2+IxGdrrAAAD9HGsdy/OMtsuDYLjd zy3LMlroLTjGMWK31d0v+RXmpY99Pa7PbqJXS1lYrYpFSNjHvft0ROrjFVVFFFeLiVxRh4cTMzPR rpMz1ej06TE4pjExMSMLDo465taI6dum2ZvpFtOvbbX8emlWpjV7VTvNc5kkfkntkgljkcyamqIX PV0NS17VYrF3VHbrts1d+do261U1RemqLWnt6dJi0xrsnsmZReeLWImibTE3v03jbtiY178R1zHc ioqbpvsqIqb+Oyq7bdPbsiff+s46a89fsd3vkbNedvkjz9r76fR7W6LSJOQP5Ueat0OfeVx2PWGS x1K4FJfFvr8ajtjLw2RG+6Fv8a0Piqe6dok3kVY064x8v62cvONT6+Ivw31ttm+nVr6Jdnqcz6mc x6ifUXiIqvFtZmLbbxMaadvZMvgW97up307r+63vt/qX7L3m+K+dqp4+b1Kq9nPt+Tzw4Rs10n8f sd3slsDaJuqfGiffvT/1U+aBlHSrQbXXW3BtcdSdKtN582wjjdhsWoOu2SUOUYPYY9PsLq7XmF7o b/PZssyijr8mgdaMBy+d8Vmp7jUMbalR8MbpaZtV1YuPl8CvBw8XFimvM1RThxarWbxTMeLRVTeZ mm16oiL6zpMueBgZjHw8ziYeFxUZWImqb0xEUxEzVNqq4q2U1TEREzOkWmbwxW1yPa17V3a5rXIv tRyLsvj7E+/Q7eeeenvuEWmLxrH4/Jztn6fC8G1A1Qy+xadaVYTkGouoWUy3GnxXCMVoZLjkF+nt VlumQ3VtvoY1R06U1itFzrZtlTuU9BNIqojHKcaq8LCoqxMbEjDwqLXqnZF54Y69szEenWY0vyoo rxKow8OmcTEq2RG2ffT/AIbz2X1jSZz+3gR2iTHoybgVybVUY5XLDpzcFjV6Neqd2Td2zfep4oq+ pFVrV1/0huy8/wC30Wjt9HknvX12u/8AR+8ejJ17OrpvHXVE7NdnXrL4bUfi9yy0WxyPM9bOL+s2 kmGyXWhsTcuz3Eqiy2L5aucVVJbLX7pkcu1VN7hqkYi/PK3bdF2R/PCzeTx6vV4OaoxcS0zameqZ 171oievX0TwxMrnMGmqvHy1WFh0zEXnZN9nTz1ztYUO90gAAAAAAAAAB9fpdpvqRrdqdjOjmkeKL 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 i4SeSirazuQLVLC98ze/DIscW27ld35HK1+sy2X9XiRExxRXiTNpvfSquYnudGmsRLQxs/nszh1Y ePmIxaJmJtwUU2tNWyaaImO71xM21qx5oNxV5Zcoqx0HHjjbqdq1RpLcaSTJrFaqXHNOKO52ttFJ X2ev1ezqst+LUd8jjrqRy0E10hrXNqWujgkayVzOzMZvKZTTM5mnDqi2ms1a3tMUxE1TTHDPjRFp 097Piz15fK5rNcX5vl6sSmOnZTpaJvVM8N5vExTEzVEazpNNU5q1G7MXtMNJcXny7PODmrlPZaea KKebBcg0o1uvEKSSeTSaTDtDM7yC8RUTVkjdNVOpEpqeOKWWeWKFkkzOrC3nuvGqijDz1PHPwoqw 46f1q6aaYvbTXXWNtontr3dvLComrEyVUxT00zTVOs2jxKKq6ui82vptmnWZstwyw5lqNmeP6fYN jsuQ5nlWUW/A8cxKB0NDfbjnV1vUdgtuPSMu9dTx2yrdd5I6V7ax1O2OV/5pKxrXONyuqjDw8TFr qth4VPFM7Y4dddO96LxeLzENTCivExaMKKL111cMReIm/Fa2uzr10i/Tq/fzvANQdJ85yrTHVXEq /B8/wqvgtOVYpdJKGavs10loae5Npaie211RTzd631tvnY6GeVjo6pq95d0OOHiYWNh04uDX6zCr vabWvaqaenvef0uVWHiYVdeFjUerxcO0TG214vHdjXnX5ByVkk1FTUNM6rqq+vorZSU7GqslTcLh Ux0luo4fzRqeXmqXoxiOXZXOTr0Xvc4tw1TOynWZ6otVednZHdnbaZcYvNUREXmZiI6LzM2iLzsv 19vZN7k6XhdzPuuveRcW7Lxyymv19xXDKbULItMo73g0l2tGE1U1jp4cmqrmmYR2xbatRk2ORr3K 90jX3WON7Gva9prTncjTl/zyrM2y0zw01cNWtWunDETVGyeifezN9WxTk85Vjzloy/8AtFMcU08V OlMTa99InbTOk/rRs1v+bx34i8xuWdsgvXHDi/qjqvj1db5rpas/paC1YBpTeKSnq5KKphseqeql 3s+OX65xVMb2SUlHdaiqb3N1p9l7y5zGbyWUmaczmqcKu9rRPHMTF78VNHFXTGzbTtvF9JccvlM5 m6ePL5equiNb24aaom9uGqvhpmdL6TOndn6DXvhBzd4tWWnyjkJxS1M02xV8SSVeYR1uFalYNZ0d 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 AAAAAAAAAAAA8FTa7dWQ1NPVUkVRBVv8pUQzI6WKV6SLJ3ljkeqIvf2XonXZN/A5cVUWiJtEdWl7 TfXr1i+t/LxmmmffRFXfjqiafamfb2xeflF0x08c6R7sQsyuke6R6+5lTd73Oc5e616I3qvgibJ7 PHfPrMT+cnu99x9VhfAjuc8+m+vysNO/6D7N/J3/ANsHrMT+cq7s+U9VhfAg/Kw07/oPs38nf/bB 6zE/nKu7PlPVYXwIbbpjp4xzHtxCzI5j2SMX3Mq7PY7vNXuueqL18yoqL50EYmJH/wASe7f278+m 71WFr4ka9nPPpv8AV01rt1FDT09JSRU8FK/ylPDCjooon+UWTvNjjeiKvfVV6ou267effHFVrF7x PXr0zOl721mZ06+7yimmn3sRT3o7OH2ojb2TtvM+84uQAAAdFRS09XGkVTH5WNHpIjfKTR+/a17U VVhlark7r16Kqp1Tpum5mJmmbxt/H5Z9EzHXfExExMTsnb29/rjv9zpeWe0Wyqj8lU0cdRF4eTmf PKxE2c1NmvlVETuuVE9ibIm226qapp97NvP7d9OzZ2E00zFrabO5e3P42c9GeSPJ3jhDb6Hj/wAk dbdJ7Ha31kluwvGNSsofplSzV1U6rq6n8qy83CrxyapkqHOkdI+1vernv3f+aSI/oxstlczNVWYy uHi11bappiKp2xHjU2q06NdO5buwcxmsvEU4GZrw6Y2RxTNMbf1ZmadszOzXp2RM334d233amYnK 2S58isV1Gi90SzsptRNDtIaeLyElE6kipHyabYzjkq0scqpVNcsqzrN7ySomi/8ACmjVuPddd7YE 4dvg4lX+OavNbb02hu0753lRe+NTi3+FRHXPwIote9unZFra3yKnb+dph3d1v/HHvIqKrfymr7ui bqvXbU/53ZE32TvJ3vDdFcvVHg/u2+3F+vT/AJPd92XP9Pbwvsw7fJ19v7fZzpfFmZdtf2puY1CP ouTVk09pHPrPK23TrRXRltJPFUtp2xwrXZ3ht/uFO2D3NI6F1PVwzKtXP5WSZI4Pc/dh7k3VhxMV ZecWeuquu+39mqmLadU9szeHXO+N5V//AJEYdtPFopjr+HTVPTGsTHR0xMzYFq/rXrzyLWf+EFr3 rPrRQzXKO8Mx3UTVDNL5gtFc4UijirrFp5LeksOOSN9zM/4hb6ZFcj37K573O3sHAy2Wm+Xy2Hg1 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 7RWpr77w/wCzU4Rcbs/rrdUW2TUiOkrs4yaC11rqZtwoKa42HGcVr22tzKOhelEtxdRLPTtnmp5e 9Iw6J3NXixVTmt6Y+bw9PFm9NM2mq1+Kqu3VeKZm/pl3Ub4owoqqy27sHK1R02i+t40mKaau3WJj S3bVKW1KzTONb86zbUnWbML1qdnupN2kvmoGZZHNSvq8guXuJtsplfSW+miprJZqW0tpqK322hgp LfbKCmpbdQUdJSUVLSxW2DRh5fDowsDDjCow4tTEdUTVMzN6uKbzeZvMzM1RNr3lVYmJXmKsTGxq vWV16zeNZ2xaI6NIi2myLW0hM/wLtf8AVqm0TxTjxyz498c+dOmWFQ0VHiM2vtpmTUSlo7bRy2y1 zXTLau3Xmiut/orNUpSUd7S0RXx0aOnuFzudfPPWTVde5cGrGxMxlcziZHErm88GtN9eiJpqiJ6r zGyI0ussHfGLThRgY+Dh56miLeNpVFrxrMxMTOka2vrrVeJl9RYe2Oumj+PZjbuEvA/hxw2yLMbO tjvupOK2Jma5y6mVtxfbq1LjTYvj0V5uFura2ertsN/gvVrpZ0Rs9srIZJKWTjO5fXT/ALbvDGzl NE3iJ8WnbabRVVXMTNovwxGzWYm180b2nAiuMpkcHKVV2iZiOKqYiZtrEU3tM31vt0ideKzvhFzY 1H4M8gsy5JY3jlq1hznNcNz/ABHLJNT8mySS5X+t1Fz3CdRsqzq6ZHSTzVl1yiryLDlkqKirdO+e S8Vks3lJVY9u5nslhZ/Lxl6sT1GHh1U1RaIj3sVURFqptERxbIm1otFrTDVyGaxcjj149FPr68SJ pm/FreqKpnrvenpidt5mds2V2C1w2Kw2axwP8pFZ7bTW1j1VVe5KZ0+zpUVfevVr2Lt06OTp1VTc meKaqtnFrbq1ny+fv31KKZpp4J206dXX0Tr0dOvntcZxb5A3/idyR0h5L4njVkzDJdIK7PbhZ8ay GtuNDZrlJnOleZ6XVK3Kotu80cMFHl9VVRpHsr5KNsbnta9z018zl6c3lcbLV18FOPwxxaeLw101 X16+GI7L9Ot9jK49eVzGHmKKOOrBvNtdb0107Yva3FfXbbb14h0ry/OdD86wDVPSTM7vgepeldZR XHA87sU8ba21VlLRy2+thlpaiF9PeLHWUM1fRXK33CKot9xoblW26tpqmkrKinl7sSijMYWLg41M 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 3TrB2p9/8POBU84/nXf2cv8AXgOYACH99KV+sKc6/wCM4v8A2Z3HtPZ8Pvwac89nOszT4OzWp5pe MeQujjc9qa5ZkiqmyIi/le6RJ1VXJt5vm+pd5t4NxM7txYj+eq+0w+1D9/TFOfpienBo/CYy/FaS oRUasad5dtm+Vg73VXIiq3yu6Juxfh1W84Z6ueeelS8VPRN7dk88+l0vY+N7o5E7j2d3vIqt2RHJ 3mr3kVUVO7svj4KnrU4283Puc6zPKLTrE3jnt587gioqbp4e38dU8/invV+HVQ2AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0vg74v7Z6/i+b80c89znW9p vPPTx2pHHrJ6y2tqH3XS+uo9QaOnjhTvVNopY6m2ZPA/qqRwxWa5TXB7kX/7lVu/vl3rN+Zf853f i1xFq8vVOLHbETNNUdOkU+NOzo1lY7kxvzfO001zNsf+jm/Rpeif9KYiIjrmrvTGC+hw81W6+dnD nHEm+NlXL+D+oXyXQVKU1c6Gv0f17vedajYFUVl1q6l7ay9QZra9XLesEKRso7VaLIzufmiOWBc8 89PfTdFQ6taTad67aU6l6J6s4zSZfprq3heTae6g4rWzVkFLfsRyyy11hv8AbHVdBURVFDJLba6Z rKimlhqad6smp5oZoopWiNO3mee4pDXO3iXql2C/aUZvoZdJ77qDopkdss+Tae5VdIKGhm1f4/ZJ cPdFvufkKCrbTUmoFgv1nvdmqnvjpGvueP1k8VHBZ7zTe6bHdW8MTduZjFiOPDrjhriOmmb3mI4r XjbTfpmYmdZlobwyNGey1WFM8OJTrRPVV423SZtN4vt6JiL0xxTP/RYdMrFye7eXWfkvA+8z4voN ppyF1gwS8to3QU9VeNRMgtWhuH2u/RVMnlKGWq031PzesZHsrkmsasVGo1ymvncajM5zNY9EzwYu JVVTeLTw8VfDe0zF7WvF5167XjuyWFXl8nl8HE/eYeHRTVb4URHFbSOm9u/PaqdSJtv133XfdVXd Oq9E9W3w8VNZstgAAAAAAAAAAAAAAAKSJ6St2qGW9opz+yPRxtFX4Zx44UZ/qnojpzYVt9NLfr9l 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//Z"> <p>哎呀,找不到该页面啦!</p> <p>请检查您的网络连接是否正常或者输入的网址是否正确</p> </div> </div> </div> </div> </body> </html> 

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//Z" class=“layout-img”>

哎呀,找不到该页面啦!

请检查您的网络连接是否正常或者输入的网址是否正确




</body> 

```

Read more

OpenClaw 搭建全流程实战:从 0 部署到可控 AI Agent(附避坑与安全建议)

OpenClaw 搭建全流程实战:从 0 部署到可控 AI Agent(附避坑与安全建议)

近几个月,「AI Agent」成为技术圈的高频词,但大多数人停留在 Demo、插件和概念层。 真正能跑在本地 / 服务器、拥有真实权限、能持续执行任务的 Agent 并不多。 OpenClaw,正是目前少数几个工程完整、可部署、可二次开发的开源 AI Agent 框架之一。 这篇文章不讲愿景、不画饼,只讲怎么搭、怎么跑、怎么不翻车。 一、OpenClaw 到底是什么?先说清楚定位 一句话说明白: OpenClaw 是一个可部署在本地或服务器上的开源 AI Agent 框架,具备 Gateway(通信)、Dashboard(控制台)和 Skills(能力插件)三大核心模块。 和 ChatGPT / 插件的本质区别在于: 对比项普通 AI 工具OpenClaw运行位置云端本地

By Ne0inhk
Flutter 组件 ninja_prime 的适配 鸿蒙Harmony 实战 - 驾驭极致高性能数值计算、实现鸿蒙端加密基石与逻辑加速审计方案

Flutter 组件 ninja_prime 的适配 鸿蒙Harmony 实战 - 驾驭极致高性能数值计算、实现鸿蒙端加密基石与逻辑加速审计方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 ninja_prime 的适配 鸿蒙Harmony 实战 - 驾驭极致高性能数值计算、实现鸿蒙端加密基石与逻辑加速审计方案 前言 在鸿蒙(OpenHarmony)生态的极速加密通讯协议开发、基于区块链的分布式政务存证系统以及需要执行海量数据完整性指纹校验的各类专业级应用中,“数值计算的处理效能”是决定应用能否通过 0307 批次严苛性能红线的关键命门。面对涉及 2048 位以上的大数哈希(Large BigInt Hashing)、秒级内的超大规模素数判定(Primality Testing)或者是需要为复杂的 0307 批次资产金融模型执行高精度的科学运算。如果仅仅依靠 Dart 原生的数值类型或未经过度优化的通用算法库。不仅会导致在处理大型数值时产生令人难以忍受的 UI 线程阻塞,更会因为计算效率过低,引发严重的系统功耗异常。 我们需要一种“逻辑纯粹、计算爆发”的数值艺术。 ninja_prime

By Ne0inhk
Ubuntu20.04下使用KITTI-07数据集运行LIO-SAM,并使用evo进行评测

Ubuntu20.04下使用KITTI-07数据集运行LIO-SAM,并使用evo进行评测

1、准备kitti数据集 1.1 下载kitti数据集 笔者刚开始进行测试时选择了kitti04序列,但是建图乱飞,并且终端一直提示:Large velocuty,reset IMU-preintegration! 这个问题始终无法解决,于是笔者选择了07序列进行测试,需要下载对应的_extract.zip和_sync.zip以及标定文件_calib.zip(网盘链接,提取码:tsdp) 1.2 kitti转rosbag 将下载好的文件按照如下方式进行放置: 将lio-sam作者提供的kitti2bag.py(/config/doc/kitti2bag)文件放在KITTI文件夹下,并在该目录下执行如下指令,会自动生成bag文件: python3 kitti2bag.py -t 2011_09_30 -r 0027 raw_synced 2、下载源码 这里直接用了这篇文章《

By Ne0inhk
Ubuntu 虚拟机安装 OpenClaw

Ubuntu 虚拟机安装 OpenClaw

最近特别火的一个事是OpenClaw,个人AI助手工具,周末空闲,咱也对新技术尝尝鲜。 一、环境与前置准备 1.1虚拟机配置要求 配置项最低要求推荐配置CPU2 vCPU2-4 vCPU内存4 GB RAM8 GB RAM存储20 GB SSD40 GB+ SSD系统Ubuntu 22.04 LTSUbuntu 22.04/24.04 LTS网络公网访问(可选)稳定的外网连接 1.2 系统初始化和更新 更新系统软件包 sudo apt update && sudo apt upgrade -y 安装必要有工具 sudo apt install -y curl ca-certificates git

By Ne0inhk