负载均衡—实现配置篇(Nginx)

简介:
 首先我们来回顾下上篇的概念: 负载均衡 == 分身的能力。
  既然要有分身的能力嘛,这好办,多弄几台服务器就搞定了。
  今天我们讲的实例嘛…..我们还是先看图比较好:
  还是图比较清晰,以下我都用别名称呼:
  PA : 负载均衡服务器/WEB入口服务器/www.mydomain.com
  P1 : WEB服务器/分身1/192.168.2.3
  P2 : WEB服务器/分身2/192.168.2.4
  P3 : WEB服务器/分身3/192.168.2.5
  PS:首先我们学这个的开始之前吧,不懂防火墙的童鞋们,建议你们把PA、P1、P2、P3的防火墙关闭,尽量不要引起不必要的麻烦。
  首先 :PA、P1、P2、P3都安装了Nginx,不会安装的可以去官网查看教程(中文版教程、非常的牛X)
   1. 装完之后哈,我们先找到 PA 的nginx.conf配置文件:
  在http段加入以下代码:
  upstream servers.mydomain.com {
   server 192.168.2.3:80;
  server 192.168.2.4:80;
  server 192.168.2.5:80;
  }
  当然嘛,这servers.mydomain.com随便取的。
  那么PA的server配置如下:
  在http段加入以下代码:
  server{
  listen 80;
  server_name www.mydomain.com;
  location / {
  proxy_pass http://servers.mydomain.com;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
  }
  那么P1、P2、P3的配置如下:
  server{
  listen 80;
  server_name www.mydomain.com;  2. 有人就问了,我用其它端口行不行啊,当然也是可以的,假设PA的nginx.conf配置文件:
upstream servers2.mydomain.com {
server 192.168.2.3:8080;
server 192.168.2.4:8081;
server 192.168.2.5:8082;
}
server{
listen 80;
server_name www.mydomain.com;
location / {
proxy_pass http://servers2.mydomain.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
  那么P1的配置如下:
  server{
  listen 8080;
  server_name www.mydomain.com;
  index index.html;
  root /data/htdocs/www;
  }
  P2配置:
  server{
  listen 8081;
  server_name www.mydomain.com;
  index index.html;
  root /data/htdocs/www;
  }
  P3配置:
  server{
  listen 8082;
  server_name www.mydomain.com;
  index index.html;
  root /data/htdocs/www;
  }
  重启之后,我们访问下,恩不错,确实很厉害。
  当我们把一台服务器给关闭了后。
  访问网址,还是OK的。说明:负载均衡还要懂得修理他(T出泡妞队营)
   3. 那么负载均衡如何保持通话呢?
  当然现在有好几种方案,我们这次只是讲一种。
  IP哈希策略
  优点:能较好地把同一个客户端的多次请求分配到同一台服务器处理,避免了加权轮询无法适用会话保持的需求。
  缺点:当某个时刻来自某个IP地址的请求特别多,那么将导致某台后端服务器的压力可能非常大,而其他后端服务器却空闲的不均衡情况。
  nginx的配置也很简单,代码如下:
  upstream servers2.mydomain.com {
  server 192.168.2.3:8080;
  server 192.168.2.4:8081;
  server 192.168.2.5:8082;
  ip_hash;
  }
  其实一切就这么简单,来赶快试试吧!
   4. 说了这么多,其实你有没有发现一个问题的所在,就是这么多服务器,他们共同需要的文件从哪里来?
  想知道如何解决,请继续关注:负载均衡 ---- 文件服务策略

 首先我们来回顾下上篇的概念: 负载均衡 == 分身的能力。
  既然要有分身的能力嘛,这好办,多弄几台服务器就搞定了。
  今天我们讲的实例嘛…..我们还是先看图比较好:
  还是图比较清晰,以下我都用别名称呼:
  PA : 负载均衡服务器/WEB入口服务器/www.mydomain.com
  P1 : WEB服务器/分身1/192.168.2.3
  P2 : WEB服务器/分身2/192.168.2.4
  P3 : WEB服务器/分身3/192.168.2.5
  PS:首先我们学这个的开始之前吧,不懂防火墙的童鞋们,建议你们把PA、P1、P2、P3的防火墙关闭,尽量不要引起不必要的麻烦。
  首先 :PA、P1、P2、P3都安装了Nginx,不会安装的可以去官网查看教程(中文版教程、非常的牛X)
   1. 装完之后哈,我们先找到 PA 的nginx.conf配置文件:
  在http段加入以下代码:
  upstream servers.mydomain.com {
   server 192.168.2.3:80;
  server 192.168.2.4:80;
  server 192.168.2.5:80;
  }
  当然嘛,这servers.mydomain.com随便取的。
  那么PA的server配置如下:
  在http段加入以下代码:
  server{
  listen 80;
  server_name www.mydomain.com;
  location / {
  proxy_pass http://servers.mydomain.com;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
  }
  那么P1、P2、P3的配置如下:
  server{
  listen 80;
  server_name www.mydomain.com;  2. 有人就问了,我用其它端口行不行啊,当然也是可以的,假设PA的nginx.conf配置文件:
upstream servers2.mydomain.com {
server 192.168.2.3:8080;
server 192.168.2.4:8081;
server 192.168.2.5:8082;
}
server{
listen 80;
server_name www.mydomain.com;
location / {
proxy_pass http://servers2.mydomain.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
  那么P1的配置如下:
  server{
  listen 8080;
  server_name www.mydomain.com;
  index index.html;
  root /data/htdocs/www;
  }
  P2配置:
  server{
  listen 8081;
  server_name www.mydomain.com;
  index index.html;
  root /data/htdocs/www;
  }
  P3配置:
  server{
  listen 8082;
  server_name www.mydomain.com;
  index index.html;
  root /data/htdocs/www;
  }
  重启之后,我们访问下,恩不错,确实很厉害。
  当我们把一台服务器给关闭了后。
  访问网址,还是OK的。说明:负载均衡还要懂得修理他(T出泡妞队营)
   3. 那么负载均衡如何保持通话呢?
  当然现在有好几种方案,我们这次只是讲一种。
  IP哈希策略
  优点:能较好地把同一个客户端的多次请求分配到同一台服务器处理,避免了加权轮询无法适用会话保持的需求。
  缺点:当某个时刻来自某个IP地址的请求特别多,那么将导致某台后端服务器的压力可能非常大,而其他后端服务器却空闲的不均衡情况。
  nginx的配置也很简单,代码如下:
  upstream servers2.mydomain.com {
  server 192.168.2.3:8080;
  server 192.168.2.4:8081;
  server 192.168.2.5:8082;
  ip_hash;
  }
  其实一切就这么简单,来赶快试试吧!
   4. 说了这么多,其实你有没有发现一个问题的所在,就是这么多服务器,他们共同需要的文件从哪里来?
  想知道如何解决,请继续关注:负载均衡 ---- 文件服务策略
最新内容请见作者的GitHub页:http://qaseven.github.io/

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
3月前
|
编解码 应用服务中间件 Linux
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
413 1
|
2月前
|
缓存 负载均衡 监控
135_负载均衡:Redis缓存 - 提高缓存命中率的配置与最佳实践
在现代大型语言模型(LLM)部署架构中,缓存系统扮演着至关重要的角色。随着LLM应用规模的不断扩大和用户需求的持续增长,如何构建高效、可靠的缓存架构成为系统性能优化的核心挑战。Redis作为业界领先的内存数据库,因其高性能、丰富的数据结构和灵活的配置选项,已成为LLM部署中首选的缓存解决方案。
|
3月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
299 18
|
3月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
386 17
|
4月前
|
数据建模 应用服务中间件 PHP
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
本示例演示如何通过Docker挂载同一宿主目录至Nginx与PHP容器,实现PHP项目运行环境配置。需注意PHP容器中监听地址修改为0.0.0.0:9000,并调整Nginx配置中fastcgi_pass指向正确的IP与端口。同时确保Nginx容器中/var/www/html权限正确,以避免访问问题。
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
|
5月前
|
应用服务中间件 网络安全 nginx
配置Nginx以支持Websocket连接的方法。
通过上述配置,Nginx将能够理解WebSocket协议的特殊要求,代理Websocket流量到合适的后端服务器。注意,Websocket并不是HTTP,尽管它最初是通过HTTP请求启动的连接升级,因此保证Nginx了解并能够妥善处理这种升级流程是关键。
1325 10
|
4月前
|
Ubuntu 应用服务中间件 Linux
在Ubuntu上配置Nginx实现开机自启功能
至此,Nginx应该已经被正确地设置为开机自启。在Ubuntu中利用 `systemd`对服务进行管理是一种高效的方式,为系统管理员提供了强大的服务管理能力,包括但不限于启动、停止、重启服务,以及配置服务的开机自启动。通过这些简洁的命令,即使是对Linux不太熟悉的用户也能轻松地进行配置。
226 0
|
6月前
|
安全 应用服务中间件 网络安全
Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡
Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡
455 0
Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡
|
7月前
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
782 87
|
7月前
|
负载均衡 应用服务中间件 nginx
Nginx配置与命令
Nginx 是一款高性能的 HTTP 和反向代理服务器,其配置文件灵活且功能强大。本文介绍了 Nginx 配置的基础结构和常用指令,包括全局块、Events 块、HTTP 块及 Server 块的配置方法,以及静态资源服务、反向代理、负载均衡、HTTPS 和 URL 重写等功能实现。此外,还提供了常用的 Nginx 命令操作,如启动、停止、重载配置和日志管理等,帮助用户高效管理和优化服务器性能。