天天看点

Nginx负载均衡

代理我们往往并不陌生, 该服务我们常常用到如(代理租房、代理收货等等)

Nginx负载均衡

那么在互联网请求里面, 客户端无法直接向服务端发起请求, 那么就需要用到代理服务, 来实现客户端和服务通信

Nginx负载均衡

<code>nginx</code>作为代理服务可以实现很多的协议代理, 我们主要以<code>http</code>代理为主

Nginx负载均衡

正向代理(内部上网) 客户端&lt;--&gt;代理-&gt;服务端

Nginx负载均衡

反向代理 客户端-&gt;代理&lt;--&gt;服务端

Nginx负载均衡
Nginx负载均衡

<code>正向与反向代理的区别</code>

1.<code>nginx</code>代理配置语法

2.<code>url</code>跳转修改返回<code>location</code>[不常用]参考<code>url</code>

3.添加发往后端服务器的请求头信息

4.代理到后端的tcp连接、响应、返回等超时时间

5.proxy_buffer代理缓冲区

6.proxy代理网站常用优化配置如下,将配置写入新文件,调用时使用include引用即可

代理的location如何进行调用

2.后端真是提供web服务配置

<code>web</code>服务器,直接面向用户,往往要承载<code>大量并发请求</code>,单台服务器<code>难以负荷</code>,我使用多台<code>web</code>服务器组成<code>集群</code>,前端使用<code>nginx``负载均衡</code>,将请求<code>分散</code>的打到我们的后端服务器集群中,实现<code>负载的分发</code>。那么会大大提升系统的<code>吞吐率、请求性能、高容灾</code>

Nginx负载均衡

负载均衡按层划分应用场景: 四层负载均衡

Nginx负载均衡

负载均衡按层划分应用场景: 七层负载均衡, nginx最常用

Nginx负载均衡

<code>nginx</code>实现负载均衡需要用到<code>proxy_pass</code>代理模块配置.

<code>nginx</code>负载均衡是将客户端请求代理转发至一组<code>upstream</code>虚拟服务池

Nginx负载均衡

nginx upstream虚拟配置语法

1.web服务上创建对应html文件

2.建立对应的releserver.conf配置文件

3.配置nginx负载均衡

后端<code>web</code>服务器在前端<code>nginx</code>负载均衡调度中的状态

1.测试<code>down</code>状态, 测试该<code>server</code>不参与负载均衡的调度

2.测试backup以及down状态

1.<code>nginx</code>负载均衡<code>[wrr]</code>轮询具体配置

2.nginx负载均衡[weight]权重轮询具体配置

3.nginx负载均衡ip_hash具体配置, 不能和weight一起使用。

配置nginx4层负载均衡实现如下需求

nginx四层负载均衡示例

实践nginx四层负载均衡

动静分离,通过中间件将动态请求和静态请求进行分离, 分离资源, 减少不必要的请求消耗, 减少请求延时。

好处: 动静分离后, 即使动态服务不可用, 但静态资源不会受到影响

通过中间件将动态请求和静态请求分离

Nginx负载均衡

0.环境准备

1.在10.0.0.7服务器上配置静态资源

2.在10.0.0.8服务器上配置动态资源

3.在负载均衡10.0.0.5上配置调度, 实现访问jsp和png

4.通过负载测试访问静态资源

5.通过负载测试访问动态资源

6.在负载均衡10.0.0.5上整合动态和静态资源的html文件

7.测试动态和静态资源是否能正常加载在一个html文件中

8.当使用systemctl stop nginx停止nginx后, 会发现静态内容无法访问, 动态内容依旧运行正常

9.当使用systemctl stop tomcat停止tomcat后, 静态内容依旧能正常访问, 动态内容将不会被请求到

根据不同的浏览器, 以及不同的手机, 访问的效果都将不一样。

根据访问不同目录, 代理不同的服务器

继续阅读