首页 > 系统相关 >Nginx配置之实现多台服务器负载均衡

Nginx配置之实现多台服务器负载均衡

时间:2022-11-15 18:34:29浏览次数:149  
标签:6666 192.168 server Nginx proxy 服务器 多台

原文 http://www.1000zx.cn/it/13524.html

Nginx负载均衡服务器: IP:192.168.0.4(Nginx-Server)

Web服务器列表:

Web1: 192.168.0.5(Nginx-Node1/Nginx-Web1)

Web2:192.168.0.7(Nginx-Node2/Nginx-Web2)

实现目的:用户访问Nginx-Server时,通过Nginx负载均衡到Web1和Web2服务器。

Nginx负载均衡服务器的nginx.conf

配置注释如下:

events
{
use epoll;
worker_connections 65535;
}
http
{

upstream的负载均衡,四种调度算法##

调度算法1:轮询.每个请求按时间顺序逐一分配到不同的后端服务器,

如果后端某台服务器宕机,故障系统被自动剔除,使用户访问不受影响

upstream webhost {
server 192.168.0.5:6666 ;
server 192.168.0.7:6666 ;
}

调度算法2:weight(权重).可以根据机器配置定义权重.权重越高被分配到的几率越大

upstream webhost {
server 192.168.0.5:6666 weight=2;
server 192.168.0.7:6666 weight=3;
}

调度算法3:ip_hash. 每个请求按访问IP的hash结果分配,这样来自同一个IP的访客固定访问一个后端服务器,

有效解决了动态网页存在的session共享问题

upstream webhost {
ip_hash;
server 192.168.0.5:6666 ;
server 192.168.0.7:6666 ;
}

调度算法4:url_hash(需安装第三方插件).此方法按访问url的hash结果来分配请求,

使每个url定向到同一个后端服务器,可以进一步提高后端缓存服务器的效率.

Nginx本身是不支持url_hash的,如果需要使用这种调度算法,必须安装Nginx 的hash软件包

upstream webhost {
server 192.168.0.5:6666 ;
server 192.168.0.7:6666 ;
hash $request_uri;
}

调度算法5:fair(需安装第三方插件).这是比上面两个更加智能的负载均衡算法.

此种算法可以依据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,

响应时间短的优先分配.Nginx本身是不支持fair的,如果需要使用这种调度算法,必须下载Nginx的upstream_fair模块

虚拟主机的配置(采用调度算法3:ip_hash)

server
{
listen 80;
server_name mongo.demo.com;

对 “/” 启用反向代理

location / {
proxy_pass http://webhost;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;

后端的Web服务器可以通过X-Forwarded-For获取用户真实IP

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

以下是一些反向代理的配置,可选.

proxy_set_header Host $host;
client_max_body_size 10m; #允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数,
proxy_connect_timeout 90; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 90; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 90; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的设置
proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k;

设定缓存文件夹大小,大于这个值,将从upstream服务器传

}
}
}
配置 192.168.0.4(Nginx-Server)

创建文件夹准备存放配置文件

$ mkdir -p /opt/confs
$ vim /opt/confs/nginx.conf
events
{
use epoll;
worker_connections 65535;
}
http
{
upstream webhost {
ip_hash;
server 192.168.0.5:6666 ;
server 192.168.0.7:6666 ;
}
server
{
listen 80;
server_name mongo.demo.com;
location / {
proxy_pass http://webhost;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
}
启动负载均衡服务器192.168.0.4(Nginx-Server)

配置 192.168.0.5(Nginx-Node1/Nginx-Web1)

创建文件夹用于存放web页面

$ mkdir -p /opt/html
$ vim /opt/html/index.html
编辑内容如下:

The host is 192.168.0.5 - Node 1
启动192.168.0.5(Nginx-Node1/Nginx-Web1)

配置192.168.0.7(Nginx-Node2/Nginx-Web2)

创建文件夹用于存放web页面

$ mkdir -p /opt/html
$ vim /opt/html/index.html
编辑内容如下:

The host is 192.168.0.7 - Node 2
启动192.168.0.7(Nginx-Node2/Nginx-Web2)
到此这篇关于Nginx配置之实现多台服务器负载均衡的文章就介绍到这了,更多相关Nginx配置负载均衡内容请搜索

标签:6666,192.168,server,Nginx,proxy,服务器,多台
From: https://www.cnblogs.com/wang2650/p/16893458.html

相关文章

  • 阿里云服务器上SpringBoot单体项目的部署
    1、注意阿里云需要安全组端口设置,不然无法访问。不仅linux虚拟机里需要开放指定端口,阿里云ecs安全组也需要添加开放对应的端口;2、linux虚拟机中安装docker,参照阿里云服务......
  • CentOS服务器上普通用户(非root)源码部署禅道
    简介:公司服务器上的docker容器,其中一个容器最小化安装了CentOS,要在这个什么命令都没有的Linux系统上,在指定的路径下,部署禅道(先搭建环境);搭建Apache、PHP、MariaDB,并结合同......
  • docker基本使用-nginx集群负载
    原文https://www.cnblogs.com/front-web/p/15529173.html注:本示例为本地mac系统模拟摘要:搭建集群服务器,本机只能在docker环境中,搭建多个nginx服务器1,参考上篇文章(dock......
  • 使用docker搭建nginx集群,实现负载均衡
    原文:https://blog.csdn.net/qq_39962403/article/details/107092779环境基于centos7,docker安装教程参考https://www.runoob.com/docker/centos-docker-install.html(选......
  • HPE Gen10 plusGen10 服务器 iLO 5 中升级 iLO 固件
    ILo5 升级修复Ripple20多个漏洞,目前ILO版本是2.16版本,升级到7.72版本二、点击“固件和操作系统软件”----更新固件官网搜索对应机型的ILO固件,可选择任意Window......
  • Nginx常用命令
    https://blog.csdn.net/veryisjava/article/details/72917894nginx常用命令 启动:cd/usr/local/nginx/sbin./nginxnginx服务启动后默认的进程号会放在/usr/local/ng......
  • 一文搞懂docker安装Jenkins,从gitee上面拉取代码.部署到另一台服务器支持版本回退
    1.前言通过docker安装Jenkins,从gitee上面拉取代码.部署到另一台服务器,并用docker启动.达到一键式构建的目标扩展功能.1.支持版本回退.2.限制版本数量,超出自动清理2......
  • 云服务器的体验分享
    之前一直没注意到厂商可以提供免费的服务器,这里推荐官网地址:https://www.sanfengyun.com,有兴趣的小伙伴可以研究一下提供了"免费虚拟主机"“免费云服务器”等免费产品,......
  • windows 服务器上任务计划程序(Task Scheduler) 被删除
    查询被删除的事件和操作人,到Windows事件查看器中查看。在Windows日志------>安全中能查到,筛选当前日志,在筛选器中事件ID是4699.这个是参考了官方文档判断出来ID,4699......
  • 云服务器搭建http代理有什么好处
    1、安全过滤,安全性方面,不允许用户直接访问真实服务器。任何访问请求都要先到达代理服务器,代理服务器进行验证、过滤等安全类操作,合格请求才会被转发到真正的服务器......