nginx https透明代理_测试技能扩展 | Nginx知识

Nginx的作用

  • 反向代理

  • 负载均衡

  • 请求过滤

  • 解决跨域

  • 配置gzip

  • 静态资源服务

  • ...

nginx几乎是众多大型网站必用技术, 大多数情况下, 我们不需要亲自去配置,但了解他在应用程序中的角色, 以及如何解决这些问题是非常有帮助的.

nginx是一个高性能的反向代理, 那什么是反向代理呢? 

正向代理和反向代理

edf04620e8a224dc12f76ad179425116.png

正向代理

正向代理是为客户端服务的,客户端可以根据正向代理访问到它本身无法访问到的服务器资源。

正向代理对客户端是透明的,对服务端是非透明的,即服务端并不知道自己收到的是来自代理的访问还是来自真实客户端的访问。

反向代理

反向代理是为服务端服务的,反向代理可以帮助服务器接收来自客户端的请求,帮助服务器做请求转发,负载均衡等。

反向代理对服务端是透明的,对客户端是非透明的,客户端并不知道自己访问的是代理服务器,而服务器知道反向代理在为他服务代理。

Nginx配置文件路径

不同安装方式,nginx的配置文件存放路径有所不同.

源码编译安装方式:在安装目录的conf目录下,安装目录是/usr/local/nginx,那么他的配置文件就在/usr/local/nginx/conf目录下.

yum安装方式:在/etc/nginx/目录(主配置文件)与/etc/nginx/conf.d目录下, 我采用docker安装方式, 因此属于这一类, 如何使用docker 安装, 请看我之前的分享.

e1302dac5a36fe5a57dc715f47a4aff7.png

可以看到我的nginx版本是1.17.9,配置文件如下:

18c704c23cfc132809bb6e1639253348.png

核心配置文件nginx.conf

很多时候,在开发、测试环境下,我们都得自己去配置Nginx, 就是去配置nginx.conf, nginx.conf是典型的分段配置文件

...events {        ...}http {    ...    server {        ....        location {            root html;            ...        }    }}

nginx的配置指令可以分为两大类:指令块与单个指令, 指令块就像events, http,server等,单独指令就是像root html 这样的.

events:配置影响nginx服务器或与用户的网络连接

http:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置

server: 配置虚拟主机的相关参数,一个http中可以有多个server

location:配置请求的路由,以及各种页面的处理情况

upstream:配置后端服务器具体地址,是负载均衡配置不可或缺的部分

请求过滤

根据状态码过滤

    error_page   500 502 503 504  /50x.html;    location = /50x.html {        root   /usr/share/nginx/html;    }

根据URL名称过滤,精准匹配URL,不匹配的URL全部重定向到主页.

location / {    rewrite  ^.*$ /index.html  redirect;}

根据请求类型过滤

if ( $request_method !~ ^(GET|POST|HEAD)$ ) {        return 403;    }

Nginx 负载均衡

Upstream指定后端服务器地址列表

upstream balanceServer {    server 100.10.10.96:12345;    server 100.10.10.97:12345;    server 100.10.10.98:12345;}

在server中拦截响应请求,并将请求转发到Upstream中配置的服务器列表

    server {        server_name  fe.server.com;        listen 80;        location /api {            proxy_pass http://balanceServer;        }    }

配置gzip

GZIP是规定的三种标准HTTP压缩格式之一,目前绝大多数的网站都在使用GZIP传输 HTML、CSS、JavaScript 等资源文件.

对于文本文件,GZip 的效果非常明显,开启后传输所需流量大约会降至 1/4 ~ 1/3

becc7476f35bcea1e77c36bcb591acba.png

4627f8dbc04e9d38ed30c6fab6fd0dc0.png

启用gzip同时需要客户端和服务端的支持,如果客户端支持gzip的解析,那么只要服务端能够返回gzip的文件就可以启用gzip,我们可以通过nginx的配置来让服务端支持gzip, Response Headers中content-encoding:gzip,指服务端开启了gzip的压缩方式.

gzip

开启或者关闭gzip模块

默认值为off

可配置为on / off

gzip_http_version

启用 GZip 所需的HTTP 最低版本

默认值为HTTP/1.1

为了提高http性能,使用持久连接(长连接)就显得尤为重要
HTTP/1.1默认支持TCP持久连接,HTTP/1.0 也可以通过显式指定 Connection: keep-alive 来启用持久连接。对于TCP持久连接的HTTP 报文,客户端需要一种机制来准确判断结束位置,而在 HTTP/1.0中,这种机制只有Content-Length。而在HTTP/1.1中新增的 Transfer-Encoding: chunked 所对应的分块传输机制可以完美解决这类问题。

nginx同样有着配置chunked的属性chunked_transfer_encoding,这个属性是默认开启的

备注:

点击这里   TCP相关概念

gzip_comp_level

压缩级别,级别越高压缩率越大,当然压缩时间也就越长(传输快但比较消耗cpu)

默认值为 1

压缩级别取值为1-9

gzip_min_length

设置允许压缩的页面最小字节数,Content-Length小于该值的请求将不会被压缩

默认值:0

当设置的值较小时,压缩后的长度可能比原文件大,建议设置1000以上

nginx更多功能, 等你来发现.

总结: 

测试是一门技术, 更是一门艺术. 也许你今天拥有的技术, 明天就会被淘汰. 同时需要我们开拓思维和眼界, 积极拥抱变化, 学习新知识, 新方法,新技能, 计算机领域讲究的是实践, 学习更要讲究方式方法. 学习和动手一定要结合, 光看不练,犹如看武功秘籍, 是永远成不了武功大侠的.

关注我们获得更多精彩内容!

a9c8f341df281af925b9c7e1f216a415.gif dfdf1a73d94277154771fba255890125.gif e6cc5eff330db984542ab7168a53b90a.gif 28bec1a47881c12ccc0e57110a1820a5.gif f3f6c1835c818e3050bc89ac2c9bf3e1.gif 0fc9efd29200b4d079ea9ad72c17c791.gif a723db9774eb2afe2f8ca25819e6235a.gif 8253dfc1c746ff3e1cf6480924f5f88d.gif 0108da8a6101973604dc510385bdd3bf.gif 749ab68ead85f4b676ce0ab77ce199e3.gif f8ab264c2cded015d2729d5c15886471.gif e2173ef958f7fe636975f441e66210cf.gif 28bec1a47881c12ccc0e57110a1820a5.gif 7d59ec8468efda703d0a9085a8d26fb6.gif

赶快来关注吧,这里有你想找的热点内容,这里有你想要的各种资料,还有海量的资源,还在等什么。快来关注,大佬带你开车。

17651ab1b7289a37b2fbd39116ebbc0b.png

关注我们获得更多精彩内容!

17651ab1b7289a37b2fbd39116ebbc0b.png 60838cc6cd3157f09f97b26cc561feaa.png

关注我们

方便拉您进群互动

d22faa6342af1864a155689fa7a19a36.png

测试常用Linux命令

测试工程师成长笔记

统计代码覆盖率-Python

CI/CD DevOps论述

Jmeter接口测试与数据驱动

d42a77d7182473fcff567877005b2577.png

79cb8bd7d839571cb5efd48c0b07a490.gif

370d00651a23d02d5babdd4944658e94.png

658e602749315f44583b838cf5f1df1d.gif

e994b03b19fe78fd5f8fbcef3663c1ec.png

文章好看点这里

91365c745e77ba9b312170b1fe02178f.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值