宝塔/本地 nginx负载均衡配置

什么是负载均衡

1)负载均衡(Load Balance)建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡有两方面的含义:首先,大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间;其次,单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高。
2)简单来说就是:其一是将大量的并发处理转发给后端多个节点处理,减少工作响应时间;其二是将单个繁重的工作转发给后端多个节点处理,处理完再返回给负载均衡中心,再返回给用户。目前负载均衡技术大多数是用于提高诸如在Web服务器、FTP服务器和其它关键任务服务器上的Internet服务器程序的可用性和可伸缩性。

什么是Nginx?

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。2011年6月1日,nginx 1.0.4发布。
其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。
Nginx 是一个安装非常的简单、配置文件非常简洁(还能够支持perl语法)、Bug非常少的服务。Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。
Nginx代码完全用C语言从头写成。官方数据测试表明能够支持高达 50,000 个并发连接数的响应。

Nginx的作用?

nginx能做反向代理,那么什么是反向代理呢,举个栗子,我想在本地使用 www.xxx.com 的域名去访问 www.taobao.com。那么这个时候我们就可以通过nginx去实现。
  再者,nginx能实现通过统一域名进入各个分支项目,nginx对请求进行分发,使访问请求达到均衡的目的,解决单台服务器压力。
nginx可以解决跨域问题,也可作为隔离层。

了解Nginx配置文件的整体结构

在这里插入图片描述

在这里插入图片描述
a.全局块

该部分配置主要影响全局Nginx:

配置运行参数:Nginx服务器用户组 woeker process数 Nginx进程PID存放路径 错误日志的存放路径配置文件的引入

b.events 块

该部分配置主要影响Nginx 服务器与用户的网络连接: 设置网连接的序列化书否允许同时接收多个网络连接事件驱动模型的选择最大的连接数的配置

c.http块

定义MIMI-Type自定义服务日志允许sendfile方式传输文件连接超时时间单连接请求数上限

d.server块

配置网络监听

1.基于端口的虚拟主机配置

2.基于名称的虚拟主机配置

3.基于ip的虚拟主机配置

e.location块

location配置请求根目录配置更改location 的URL 网络默认首页配置

我们可以直接在宝塔上进行nginx的安装,宝塔上nginx和apache不能并存,当我们在宝塔上安装完nginx后可以直接去进行相关的配置

在这里插入图片描述

在这里插入图片描述

server
    {
        listen 8081;
        server_name 175.24.123.153;
        index index_8081.html;
        root  /www/server/phpmyadmin;

        #error_page   404   /404.html;
        include enable-php.conf;

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /www/wwwlogs/access.log;
    }
    
    server
    {
        listen 8082;
        server_name 123.207.211.151;
        index index_8082.html ;
        root  /www/server/phpmyadmin;

        #error_page   404   /404.html;
        include enable-php.conf;

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /www/wwwlogs/access.log;
    }
    
    
    
  

include /www/server/panel/vhost/nginx/*.conf;


upstream myServer {   

    server  175.24.123.153:8081;

    server  175.24.123.153:8082 weight=10;
    
    server  123.207.211.151:8080 weight=5;

}

server {
	listen 8080;
	listen [::]:8080;
	server_name _;
	location / {
		proxy_pass     http://myServer;
		proxy_set_header	Host		$host;
		proxy_set_header	X-Read-IP		$remote_addr;
		proxy_set_header	X-Forwarded-For	$proxy_add_x_forwarded_for;
}
}

}

然后我们应该去系统默认访问的文件夹中去设置指定默认访问的文件名

在这里插入图片描述

当我们给我们设置的服务指定了端口号之后要进行端口的开放

在这里插入图片描述

节点说明:
一、在http节点里添加:

定义负载均衡设备的 Ip及设备状态
upstream myServer {

server 127.0.0.1:9090 down; 
server 127.0.0.1:8080 weight=2; 
server 127.0.0.1:6060; 
server 127.0.0.1:7070 backup; 

}

二、在需要使用负载的Server节点下添加

proxy_pass http://myServer;

upstream 每个设备的状态:

1、down 表示当前的server暂时不参与负载
2、weight 默认为1.weight越大,负载的权重就越大。
3、max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
4、fail_timeout:max_fails 次失败后,暂停的时间。
5、backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

软件负载均衡软件有Nginx、LVS、HaProxy等是目前使用最广泛的三种负载均衡软件。

nginx 的 upstream目前支持 4 种方式的分配
1)、轮询(默认)
  每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2)、weight
  指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
3)、ip_hash
  每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
4)、fair(第三方)
  按后端服务器的响应时间来分配请求,响应时间短的优先分配。
5)、url_hash(第三方)

在这里插入图片描述

配置不同的ip服务,配置方式是一样的,然后只要在upstream myServer中连接一下就好了

在这里插入图片描述

然后就是本地的负载均衡的配置

在服务器上安装Nginx

进行配置
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

只要路径写对,结合到项目中也可以使用本地ip127.0.0.1+端口号进行访问

在这里插入图片描述

在这里插入图片描述

server{
	listen	8081;
	server_name   _;
	location / {
	     root   ../../www/month6;
	   index  index_8081.html  index_8081.php;
	}
     }  

server{
	listen	8082;
	server_name   _ ;
	location / {
	     root   html;
	   index  index_8082.html;
	}
     }  

server{
	listen	8083;
	server_name    _ ;
	location / {
	     root   html;
	   index  index_8083.html;
	}
     }  
upstream myServer {
	server 127.0.0.1:8081 weight=1;
	server 127.0.0.1:8082 weight=1;
	server 127.0.0.1:8083 weight=1;
}

server {
	listen 8080;
	listen [::]:8080;
	server_name _;
	location / {
		proxy_pass     http://myServer;
		proxy_set_header	Host		$host;
		proxy_set_header	X-Read-IP		$remote_addr;
		proxy_set_header	X-Forwarded-For	$proxy_add_x_forwarded_for;
}
}

最后启动小皮,关闭apache

  • 21
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值