nginx服务器

nginx反向代理

nginx 反向代理的好处:

  • 提高访问速度

    因为nginx本身可以进行缓存,如果访问的同一接口,并且做了数据缓存, nginx就直接可把数据返回,不需要真正地访问服务端,从而提高访问速度。

  • 进行负载均衡

    所谓负载均衡,就是把大量的请求按照我们指定的方式均衡的分配给集群中的每台服务器。

  • 保证后端服务安全

    因为一般后台服务地址不会暴露,所以使用浏览器不能直接访问,可以把nginx作为请求访问的入口,请求到达nginx后转发到具体的服务中,从而保证后端服务的安全。

nginx 反向代理的配置:

cpp 复制代码
server{
    listen 80;
    server_name localhost;
    
    location /api/{
        proxy_pass http://localhost:8080/admin/; #反向代理
    }
}

**proxy_pass:**该指令是用来设置代理服务器的地址,可以是主机名称,IP地址加端口号等形式。

如上代码的含义是:监听80端口号, 然后当我们访问 http://localhost:80/api/.../...这样的接口的时候,它会通过 location /api/ {} 这样的反向代理到 http://localhost:8080/admin/上来。

nginx 负载均衡

当如果服务以集群的方式进行部署时,那nginx在转发请求到服务器时就需要做相应的负载均衡。其实,负载均衡从本质上来说也是基于反向代理来实现的,最终都是转发请求。

cpp 复制代码
**nginx 负载均衡的配置方式:**

```nginx
upstream webservers{
    server 192.168.100.128:8080;
    server 192.168.100.129:8080;
}
server{
    listen 80;
    server_name localhost;
    
    location /api/{
        proxy_pass http://webservers/admin;#负载均衡
    }
}

*upstream:如果代理服务器是一组服务器的话,我们可以使用upstream指令配置后端服务器组。

如上代码的含义是:监听80端口号, 然后当我们访问 http://localhost:80/api/.../...这样的接口的时候,它会通过 location /api/ {} 这样的反向代理到 http://webservers/admin,根据webservers名称找到一组服务器,根据设置的负载均衡策略(默认是轮询)转发到具体的服务器

注:**upstream后面的名称可自定义,但要上下保持一致。

nginx 负载均衡策略:

| 轮询 | 默认方式

| weight | 权重方式,默认为1,权重越高,被分配的客户端请求就越多 |

| ip_hash | 依据ip分配方式,这样每个访客可以固定访问一个后端服务 |

| least_conn | 依据最少连接方式,把请求优先分配给连接数少的后端服务 |

| url_hash | 依据url分配方式,这样相同的url会被分配到同一个后端服务 |

| fair | 依据响应时间方式,响应时间短的服务将会被优先分配 |

cpp 复制代码
**weight:**

```nginx
upstream webservers{
    server 192.168.100.128:8080 weight=90;
    server 192.168.100.129:8080 weight=10;
}
cpp 复制代码
**ip_hash:**

```nginx
upstream webservers{
    ip_hash;
    server 192.168.100.128:8080;
    server 192.168.100.129:8080;
}

least_conn:

nginx 复制代码
upstream webservers{
    least_conn;
    server 192.168.100.128:8080;
    server 192.168.100.129:8080;
}

url_hash:

nginx 复制代码
upstream webservers{
    hash &request_uri;
    server 192.168.100.128:8080;
    server 192.168.100.129:8080;
}

fair:

nginx 复制代码
upstream webservers{
    server 192.168.100.128:8080;
    server 192.168.100.129:8080;
    fair;
}
相关推荐
Data analyse4569 分钟前
Cookie过期引发UV上涨的复核方法
服务器·前端·数据分析·uv
程序猿老A30 分钟前
云服务器怎么配置OSS?
运维·服务器
对讲机数码科普30 分钟前
数字集群对讲工程全流程拆解:DMR/ePDT 制式选型、组网落地与运维实战
运维·软件工程
程序猿老A33 分钟前
从入门型到企业型:云服务器开放共享型到独享型规格升级变配
运维·服务器
吴声子夜歌39 分钟前
Nginx应用与运维——Nginx代理服务应用实战(TCP/UDP代理)
运维·tcp/ip·nginx
吴声子夜歌44 分钟前
Nginx应用与运维——Nginx缓存服务应用实战(一)
运维·nginx·缓存
帷幕落秋1 小时前
Mysql多实例——一个服务器多个mysql服务
运维·数据库
海宇数据1 小时前
零信任架构实战:基于海宇活体识别V步骤1构建自动化考前活体认证网关
运维·人工智能·架构·自动化
帷幕落秋1 小时前
Mysql备份
运维·数据库
吠品1 小时前
volatile到底在拦什么:SysTick->VAL读的哪格
java·服务器·开发语言