Nginx配置反向代理和负载均衡

Nginx是一个流行的Web容器,作为服务的入口,使用反向代理和负载均衡,达到隐藏和保护内部服务安全的作用,本文会描述Nginx反向代理和负载均衡的配置。

反向代理

在Nginx配置文件中使用 proxy_pass 配置反向代理。

server {
    listen       80;
    server_name  www.scung.cn;# 服务器地址或绑定域名

    location / { 
        proxy_pass http://localhost:5000; 
    }
}

上面的代码是一个最简单的反向代理配置,监听80端口,域名匹配www.scung.cn。localtion 定义了 / ,在其中使用 proxy_pass 进行转发,这样所有流向 www.scung.cn 的流量就全部都转到了 localhost:5000 中。

负载均衡

在反向代理的基础上,发展出了负载均衡,即同时反向代理多个服务。使用 upstream 来配置负载均衡。

upstream mysvr { 
    server localhost:5000;
    server localhost:6000;
}
server {
    listen       80;
    server_name  www.scung.cn;# 服务器地址或绑定域名
    
    location  / {         
        proxy_pass  http://mysvr;           
    }
}

使用 upstream 定义了一个对象 mysvr,在 proxy_pass 中使用即可实现负载均衡,同时将 www.scung.cn 的流量转发到 localhost:5000 和 localhost:6000 两个服务中。

在做负载均衡时,涉及到流量转发策略,Nginx提供了多种策略:轮询,加权轮询还有 ip_hash

轮询

默认配置即为轮询。

upstream mysvr { 
    server localhost:5000;
    server localhost:6000;
}

加权轮询

在轮询的基础上使用 weight 实现权重比。

upstream mysvr { 
    server localhost:5000 weight=1;
    server localhost:6000 weight=10;
}

ip_hash

在轮询基础之上使用 ip_hash 实现该策略。

upstream mysvr { 
    server localhost:5000; 
    server localhost:6000;
    ip_hash;
}

除了上述三个配置外,Nginx还提供了一些其他的配置,比如使用 backup 来表示主从,只有在主服务无法请求时才会转发到该服务,还可以定义超时次数和失败次数实现特定的效果。

发布时间:2024-04-21
其他阅读

Visual Studio 2022激活密钥

Visual Studio 2022 Pro 激活密钥:

查看原文

WPF中CornerRadius是什么属性

在WPF中,CornerRadius 属性我们经常需要使用到,它的作用是用来设置控件的四个圆角,在 BorderButton 等控件中使用。等同于 css 中的 border-radius 设置。

查看原文

记录中文名WPF应用无法启动

今年开春,突然就收到部分用户反馈软件无法启动的问题,沟通后远程查看发现应用刚启动就直接崩溃了,在Windows的事件查看器可以看到应用的崩溃日志,发现是 ucrtbase.dll 模块崩溃,错误代码 0x0000409

查看原文

WPF中创建一个矩形圆角动画

WPF 中内置了好几种动画,大多数场景可以坐到开箱即用,不过并没有内置 CornerRadiusAnimation ,本文将会介绍怎么实现一个 CornerRadiusAnimation 动画,实现 BorderCornerRadius 属性动画效果。

查看原文

WPF打包成单文件

在开发WPF程序时,有时我们需要把整个软件打包成一个文件,这样可以方便分发,本文将会介绍怎么把WPF打包成单文件形式。

查看原文