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
其他阅读

WPF托盘运行

本文介绍如何将WPF应用最小化到托盘,窗口关闭后进程仍然运行的方法。

查看原文

Web前端中实现自定义右键菜单

在原生的桌面应用中,右键菜单是个很常见也很常用的东西,但是在Web应用中,由于浏览器自带了右键菜单,所以我们很少见到应用有自己的右键菜单,但不常见并不代表没有,本文就会介绍一个右键菜单的实现。

查看原文

WPF中开启虚拟化提高性能

WPF(Windows Presentation Foundation)是一个强大的框架,它能创建高度响应和美观的桌面应用程序。然而,当处理大量数据时,性能问题可能变得显著。为了解决这些问题,我们可以利用虚拟化来提升WPF应用的性能。

查看原文

C#应用在Windows实现自启动

本文将讲解 C# 应用在 Windows 系统中通过自动设置注册表的形式的形式实现开机自启动,这也是 Windows 系统推荐的做法。

查看原文

git的一些技巧

git 是一个免费开源分布式版本控制系统,可以高效处理从小型到超大型项目内容管理,本文会介绍一些 git 使用的技巧。

查看原文