如何通过示例将 Nginx 配置为负载均衡器

2023-11-17

Nginx 是一种流行的开源 Web 服务器软件,也可以用作负载均衡器。负载平衡是一种在多个服务器之间分配传入流量的技术,以提高性能、提高可用性并避免任何单个服务器过载。在本文中,我们将通过示例讨论如何将 Nginx 配置为负载均衡器。

要将 Nginx 配置为负载均衡器,需要执行以下步骤:

  1. 安装 Nginx 网络服务器
  2. 配置上游并添加后端服务器所有节点
  3. 与上游设置 proxy_pass 位置
  4. 重新启动 Nginx 服务器以应用更改
  5. 测试 Nginx 负载均衡器设置

让我们一一按照步骤来完成 Nginx 配置以充当负载均衡器。

第1步:安装Nginx

第一步是在充当负载均衡器的服务器上安装 Nginx。 Nginx 可以使用包管理器安装在大多数 Linux 发行版上。例如,在 Ubuntu 上,您可以运行以下命令:

sudo apt-get update 
sudo apt-get install nginx 

在基于 RHEL 的系统上,您可以使用以下命令来安装 Nginx:

sudo yum install nginx 

现代基于 RHEL 的系统使用 DNF 包管理器。

步骤 2:配置上游服务器

下一步是定义将从负载均衡器接收流量的服务器。这些服务器称为上游服务器。您可以在 Nginx 配置文件中定义它们/etc/nginx/nginx.conf。在文本编辑器中打开该文件并添加以下代码:

1
2
3
4
5
6
http {
    upstream myapp {
        server 192.168.10.201;
        server 192.168.10.202;
    }
}

在此示例中,我们定义了一个名为的上游组“myapp”其中包括两个服务器:192.168.10.201 and 192.168.10.202。这些是将接收来自负载均衡器的流量的服务器。

步骤 3:配置负载均衡器

现在我们已经定义了上游服务器,我们可以配置负载均衡器。将以下代码添加到http块中nginx.conf:

1
2
3
4
5
6
7
8
9
10
11
12
13
http {
    upstream myapp {
        server 192.168.10.201;
        server 192.168.10.202;
    }
 
    server {
        listen 80;
        location / {
代理通行证http://myapp;
        }
    }
}

在此代码中,我们定义了一个侦听端口 80(默认 HTTP 端口)的服务器块。 location / 块指定应路由到上游服务器的 URL 路径。这代理通行证指令告诉 Nginx 将传入的请求转发到“myapp”我们之前定义的上游组。

第四步:重启Nginx

最后,重新启动 Nginx 以将更改应用到配置文件。运行以下命令:

sudo service nginx restart 

第 5 步:测试负载均衡器

为了测试负载均衡器,我们可以使用 Web 浏览器或 cURL 等工具向服务器发送 HTTP 请求。当我们访问location/块中配置的URL时,Nginx会将请求转发到其中一台上游服务器“myapp” group.

如果一切正常,您应该会看到来自上游服务器之一的响应。您可以通过多次刷新页面并检查响应每个请求的服务器的 IP 地址来确认两台服务器之间的负载是否均衡。

结论

将 Nginx 配置为负载均衡器是一个简单的过程,可以帮助提高 Web 应用程序的性能和可用性。通过定义上游服务器并配置负载均衡器,您可以在多个服务器之间分配传入流量,并避免任何单个服务器过载。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过示例将 Nginx 配置为负载均衡器 的相关文章

  • 无法将上游映射到 nginx 服务器中的文件夹

    我想将系统端口 82 映射到 127 0 0 1 8080 runningSite 但 nginx 配置出现异常 upstream dev server 127 0 0 1 8080 runningSite server rewrite l
  • Meteor - 自动发起客户端登录

    我有一个 Meteor 应用程序 我使用 nginx 和内部 SSO 服务进行身份验证 我能够成功地完成此操作 并在服务器 Meteor onConnection 方法上的 nginx 设置 http 标头中检索用户详细信息 此时 我不确定
  • 如何在 OpenShift 上安装 Nginx

    虽然我跟着https blog openshift com lightweight http serving using nginx on openshift https blog openshift com lightweight htt
  • 如何在 Nginx 中将会话/cookie 从主域传递到子域?

    因此 我的主域中有一个子域的 iframe 页面 并且该子域页面需要用户登录并具有要访问的成员资格 基本上我需要将会话变量和 cookie 传递到子域以便加载 iframe 我怎样才能在 Nginx 中实现这一目标 饼干有一个domain属
  • 如何让 nginx 和乘客在部署后自动重启

    我目前在虚拟专用服务器上部署了一个 Rails 应用程序 我使用 Capistrano Nginx 和乘客在服务器上运行我的 Rails 应用程序 由于某种原因 在完成 cap 部署 更新后 我永远无法在网站上显示更新的代码 部署进行得很好
  • Laravel 路由使用 nginx 覆盖 phpmyadmin 路径

    我的 LEMP Droplet 上有以下 nginx 配置 server listen 80 default server listen 80 default server ipv6only on root var www html pub
  • 站点启用/中不允许使用 nginx“mail”和“stream”指令

    当我尝试在 nginx 中使用流或邮件指令时遇到问题 我正在使用 nginx 1 16 1 和 Ubuntu 18 04 4 LTS 这是我的 nginx conf user www data worker processes auto p
  • 为什么要使用 Node.js 安装服务器(Nginx、Apache...)? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么 Node js Express Web 框架下需要 apache https stackoverflow com questions 9287747 why do we need apache
  • Nginx vs Apache 用于高流量站点

    Would nginx作为高流量网站的网络服务器是否是更合适的选择 我们将建立的网站是一个电子商务网站 如果这有什么不同的话 无论哪种方式 从技术角度来看 我真的对实际的 原因 感兴趣 即 为什么会nginx从技术角度来看 对于此类网站来说
  • nginx工作进程如何共享“监听套接字”

    This http aosabook org en nginx html http aosabook org en nginx html说 工作进程接受来自共享 监听 套接字的新请求 并在每个进程内执行高效的运行循环 我查看了代码 但不明白
  • 命名 Docker 卷以共享构建而不更新

    我工作的公司的开发人员要求我用 Docker 做一些不同的事情 然后我也被使用了 目标是拥有 2 个具有以下职责的容器 容器A 节点容器将构建前端 React 应用程序并将捆绑包放入名为的目录中app dist 完成后 容器将停止运行 容器
  • uWSGI重启时停机

    每次当我有代码更新时重新启动服务器时 我都会遇到 uwsgi 问题 当我使用 sudo restart account 重新启动 uwsgi 时 停止和启动实例之间存在一个小间隙 导致停机并停止所有当前请求 当我尝试 sudo reload
  • ./manage.py 使用 https 运行服务器

    manage py 运行服务器 0 0 0 0 8000 我使用上面的行作为我从 github 借用的代码的一部分 https github com ribeiroit boh puppet https github com ribeiro
  • NGINX 与 Tomcat 配置

    我是 Nginx 新手 我需要你的帮助 根据很多论坛我了解到我们所有的静态页面都存储在Nginx中 当有请求到来时 我必须将该请求传递给 tomcat 获取数据 并在 tomcat 生成响应后生成响应 目前 我刚刚做到了 我将请求直接传递给
  • 上传大文件(几 GB)时,nginx 返回内部服务器错误

    我在 nginx 后面有一个 Artifactory 上传大于 4 GB 的文件失败 我相当确定这是 nginx 的错误 因为如果文件从本地主机上传 上传到本地主机 则不会出现问题 nginx 设置为client max body size
  • 我怎样才能重写这个nginx“if”语句?

    例如 我想这样做 if http user agent MSIE 6 0 http user agent MSIE 7 0 etc etc rewrite ROOT ROOT ancient last break 而不是这个 if http
  • 切换到负载均衡器后,django 帖子收到 CSRF 验证失败

    我有一个有效的登录模板 可以发布帖子 如下所示
  • nginx docker 容器:502 错误网关响应

    我有一个服务监听 8080 端口 这不是一个容器 然后 我使用官方镜像创建了一个 nginx 容器 docker run name nginx d v root nginx conf etc nginx conf d p 443 443 p
  • Nginx反向代理返回404

    我的 Nginx 安装并运行 下面是配置 etc nginx nginx conf 我要全部转发 api 到我的 tomcat 服务器 该服务器在同一服务器上的端口 9100 上运行 类型http myhost 9100 api apps有
  • 使用 Nginx 或 Apache 来提供动态内容? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi

随机推荐

  • 1.1c/c++开源库清单

    以下我是从 资源网站 获取到的数据 关于 C 框架 库和资源的一些汇总列表 由 fffaraz 发起和维护 内容包括 标准库 Web应用框架 人工智能 数据库 图片处理 机器学习 日志 代码分析等 标准库 C 标准库 包括了STL容器 算法
  • “放弃 GitHub ,时机已到”,软件自由保护协会怒批!

    整理 彭慧中 责编 屠敏 出品 CSDN ID CSDNnews 诞生 14 年来 凭借完整协议支持 Git格式的版本库托管等优势 GitHub成为了最受开发者欢迎的代码托管平台 不过 近几年来 随着GitHub的一些转变 引发了行业内一些
  • 第一节:数据类型——null,undefined和布尔值

    JavaScript 的数据类型 共有六种 ES6 又新增了第七种 Symbol 类型的值 数值 number 整数和小数 比如1和3 14 字符串 string 文本 比如Hello World 布尔值 boolean 表示真伪的两个特殊
  • 矩阵求导网站

    https www matrixcalculus org
  • 离散傅里叶变换的一些理解和LTE基带信号生成的数学理解

    离散傅里叶变换 DFT 快速傅里叶变换 FFT 是一种运用蝶形算子计算DFT的方法 下面是matlab实现代码 close all clear fs 200 N 256 采样freq和数据点数 n 0 N 1 t n fs 时间序列 x 0
  • Mac5款高效实用软件,值得推荐

    目录 1 MarginNote 3 阅读批注学习笔记软件 2 iShot Mac截图 长截图 带壳截图 贴图 标注 取色 录屏 录音 OCR 翻译 合集工具 3 KeyCastr 实时显示按下的按键 4 MindNode 超美观的思维导图
  • odoo 12 : 权限安全(security)

    Odoo 中使用安全组来实现 权限授予组 组中分配用户 Odoo 应用通常有两个组 针对普通用户的用户组 包含额外应用配置权限的管理员组 1 安全组 group security 模型名 security xml security ir m
  • tensorflow中model.fit()用法

    tensorflow中model fit 用法 model fit 方法用于执行训练过程 model fit 训练集的输入特征 训练集的标签 batch size 每一个batch的大小 epochs 迭代次数 validation dat
  • layui switch 设置默认开关属性

    给元素定义ID switch order var flag true if flag document getElementById switch order setAttribute checked on else document ge
  • 最近超火的ChatGPT到底怎么样?体验完后我有哪些感受和思考?

    本文主题 ChatGPT 人工智能 官方网站 chat openai com 文章目录 前言 二 初识 三 深入 四 编程相关 编写 纠错 五 感想 六 展望 七 结语 前言 大家好 这次我们来聊一聊最近超级火的人工智能语音 ChatGPT
  • 针式打印机无电脑测试软件,针式打印机断针测试软件合集

    这是针式打印机断针测试软件合集 是一款适用于24针针式打印机的断针测试软件 针式打印机最大的弊端是有出现断针的可能性 会导致票据缺点少横 很容易出现误差 您可以使用该软件测试您的打印机是否存在断针以及是哪一个针断了 为您解决打印机的故障提供
  • 微信小程序实现左侧滑动导航栏

    微信小程序实现左侧滑动导航栏 1 左侧滑动导航栏图如下 2 这是我们左侧滚动栏的代码 wxml
  • 论文笔记:Deep Learning for Anomaly Detection inTime-Series Data: Review, Analysis,and Guidelines

    2021 的paper 1 时间序列数据异常的定义 离群值 outlier 与其他观察结果偏差过大 以至于怀疑它是由不同机制产生的 时间序列的异常值 某一个 些时间片的数值值 展现出与先前时间步长显着不同的意外行为 根据之前的文献 作者将时
  • 为 crontab 作业设置环境变量

    Crontab 是 Unix 和类 Unix 操作系统中的一个功能强大的实用程序 用于安排命令在固定时间 日期或间隔定期运行 这个强大的工具与环境变量相结合 可以为自动化和管理任务提供更强大的解决方案 但是什么是环境变量 如何在 Cront
  • MB、Mb 和 MiB(数字单位)之间的区别

    在当今的数字世界中 理解和区分各种数字单元的需求变得越来越重要 MB Mb 和 MiB 等单位经常用于表示文件大小 存储容量和数据传输速率 然而 围绕这些术语的混淆常常会导致误解和错误 本文旨在提供全面的指南 帮助您理解这些数字单位 它们的
  • 如何在 CentOS/RHEL 7/6 上使用 PHP/FastCGI 设置 Apache

    FastCGI功能与 CGI 的工作非常相似 FastCGI 与 CGI 相比 在一些地方存在差异 例如 FastCGI 进程是持久的 并且每个进程可以处理多个请求 FastCGI 允许通过在单个全双工连接上复用环境信息 标准输入 输出和错
  • 使用 PHP/JQuery 提交表单而不刷新页面

    在广阔的 Web 开发领域中 创建用户友好的体验至关重要 增强用户体验 UX 的一种方法是简化表单提交流程 传统的表单提交需要刷新页面来处理数据 这对于用户来说可能是令人沮丧且耗时的 使用 PHP 和 jQuery 可以克服这个问题并无需刷
  • 如何清除 Docker 容器的日志文件

    本教程将帮助您清除 Docker 容器上的日志文件 如果您的系统磁盘空间不足 并且您发现 docker 容器的日志文件占用了大量磁盘空间 您可以在本教程的帮助下找到日志文件位置并清除它们 清除 docker 容器的日志文件时 不需要停止它
  • 如何使用 DNF 将 Fedora 25 升级到 Fedora 26

    软呢帽26Fedora 的最新版本发布于2017 年 7 月 11 日 Fedora 工作站用户可能需要升级工作站才能使用最新版本 本教程将帮助您将 Fedora 25 升级到 Fedora 26 工作站使用命令行实用程序 DNF 这是升级
  • 如何通过示例将 Nginx 配置为负载均衡器

    Nginx 是一种流行的开源 Web 服务器软件 也可以用作负载均衡器 负载平衡是一种在多个服务器之间分配传入流量的技术 以提高性能 提高可用性并避免任何单个服务器过载 在本文中 我们将通过示例讨论如何将 Nginx 配置为负载均衡器 要将