Nginx之负载均衡、静态代理与动态代理配置

发布时间:2024年01月22日

Nginx之负载均衡配置

1. 负载均衡基本配置

1. 配置upstream

upstream www.jinshengyuan.com {
	server 192.168.31.100:8080;
	server 192.168.31.101:8081;
}

2. 配置location

location可以配多个

location /demo {
	proxy_pass http://www.jinshengyuan.com;
}
<!--
demo:表示部署到服务器中的contenxPath,如tomcat的webapp目录的demo目录;
www.jinshengyuan.com一定要与upstream后面的保持一致
-->

3. 访问

打开浏览器,输入http://www.jinshengyuan.com进行访问

2. Nginx常用负载均衡策略

1. 轮询(默认)

每个请求轮流分配到不同的服务器,如果某一台服务器宕掉,将自动剔除已经宕掉的服务器而转发到运行正常的服务器。

2. 权重

每个请求按一定的比例分发到不同的服务器,weight值越大访问的几率越大,用于后端服务器性能不均的情况

upstream www.jinshengyuan.com {
	server 192.168.31.100:8080 weight=1;
	server 192.168.31.101:8081 weight=3;
}

3. ip_hash策略

ip_hash也叫IP绑定,每个请求按访问的IP的hash值分配,这样每个访问客户端会固定访问一个后端服务器,可以解决会话Session共享的问题;

如hash(“192.168.31.110”) %2 = 0 或1,这种规则

这种策略在IP不变的情况下会一直访问其中的某一台服务器,而非在各个服务器中来回切换

配置如下:

upstream www.jinshengyuan.com {
	server 192.168.31.100:8080;
	server 192.168.31.101:8081;
	ip_hash; # IP绑定
}

4. 最少连接策略

web请求会被转发大连接数最少的服务器上;

配置如下:

upstream www.jinshengyuan.com {
	server 192.168.31.100:8080;
	server 192.168.31.101:8081;
	least_conn; # 最少连接策略
}

5. 负载均衡其他几个配置

  1. backup

    其他所有的非backup机器down的时候,才请求backup机器

如下

upstream www.jinshengyuan.com {
	server 192.168.31.100:8080;
	server 192.168.31.101:8081 backup; # 备用服务器,其他服务器宕机了才会请求此服务器
}
  1. down

    down表示当前的sever是down的状态,不参与负载均衡

如下:

upstream www.jinshengyuan.com {
	server 192.168.31.100:8080;
	server 192.168.31.101:8081 down; # 此服务不参与负载均衡
}

3. 静态代理

把所有静态资源的访问改为nginx,而不是访问tomcat,因为你滚下更擅长与静态资源的处理,性能更好,效率更高。

所以在实际应用中,我们将静态资源比如图片,css,html,js等交给nginx处理,而不是由tomcat处理。

1. 基于静态在一文件后缀的匹配

通过在nginx.conf配置文件中添加静态资源的location,比如:

当访问静态资源,则从D:/demo/static目录下获取(举例)

location ~.*\.(js|css|html|gif|jpg|png|swf|ioc|zip|txt|doc|docx|xls|pdf|xlsx|mp3|ppt|flv)$ {
	root D:/demo/static;
}

~ 表示正则匹配,也就是后面的内容可以是正则表达式匹配;

第一个 . 表示任意字符;

***** 表示一个或多个字符;

\. 是转义字符,是后面这个点的转移字符;

| 表示或者

$ 表示结尾

2. 基于静态资源文件目录的匹配

将镜头在一放入D:/demo/static目录下,然后当用户访问时由nginx返回这些静态资源

location ~.*/(css|js|images){
	root D:/demo/static;
}

4. 动静分离

nginx的负载均衡和静态代理结合在一起,可以实现动静分离,这是实际应用中常见的一种场景。

动静分离各司其职,专注于自己擅长的事情,充分利用了它们各自的优势,从而达到更高效合理的架构。

1. 动态资源

如jsp由tomcat或其他web服务器完成

2. 静态资源

如图片,css,js等由nginx服务器完成

3. 动静分离示例

在这里插入图片描述

Nginx在一台服务器上安装一份,可以拷贝为多个nginx.conf文件启动多个Nginx,每个Nginx配置文件不一样即可。

文章来源:https://blog.csdn.net/yuanjinshenglife/article/details/135739652
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。