孙宽奕优秀作者
原创内容 来源:小居数码网 时间:2024-08-08 16:53:01 阅读() 收藏:22 分享:61 爆
导读:您正在阅读的是关于【数码知识】的问题,本文由科普作家协会,生活小能手,著名生活达人等整理监督编写。本文有1236个文字,大小约为5KB,预计阅读时间4分钟。
系统的扩展可以分为纵向扩展和横向扩展。
纵向扩展是从单机的角度出发,通过增加系统的硬件处理能力来提升服务器的处理能力
横向扩展是通过添加机器来满足大型网站服务的处理能力。
这里面涉及到两个重要的角色分别是"应用集群"和"负载均衡器"。
应用集群:将同一应用部署到多台机器上,组成处理集群,接收负载均衡设备分发的请求,进行处理并返回响应的数据。
负载均衡器:将用户访问的请求根据对应的负载均衡算法,分发到集群中的一台服务器进行处理。
1、解决服务器的高并发压力,提高应用程序的处理性能。
2、提供故障转移,实现高可用。
3、通过添加或减少服务器数量,增强网站的可扩展性。
4、在负载均衡器上进行过滤,可以提高系统的安全性。
这种方式比较原始,只要实现的方式就是在网站主页上面提供不同线路、不同服务器链接方式,让用户来选择自己访问的具体服务器,来实现负载均衡。
DNS
域名系统(服务)协议(DNS)是一种分布式网络目录服务,主要用于域名与 IP 地址的相互转换。
大多域名注册商都支持对同一个主机名添加多条A记录,这就是DNS轮询,DNS服务器将解析请求按照A记录的顺序,随机分配到不同的IP上,这样就能完成简单的负载均衡。DNS轮询的成本非常低,在一些不重要的服务器,被经常使用。
如下是我们为某一个域名添加的IP地址,用2台服务器来做负载均衡。
验证:
ping /gnosek/nginx-upstream-fair
unzip nginx-upstream-fair-master.zip
mv nginx-upstream-fair-master fair
./configure --add-module=/root/fair
make
编译可能会出现如下错误,ngx_http_upstream_srv_conf_t结构中缺少default_port
解决方案:
在Nginx的源码中 src/http/ngx_http_upstream.h,找到ngx_http_upstream_srv_conf_s,在模块中添加添加default_port属性
in_port_t default_port
然后再进行make.
6.1 将sbin目录下的nginx进行备份
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginxold
6.2 将安装目录下的objs中的nginx拷贝到sbin目录
cd objscp nginx /usr/local/nginx/sbin
6.3 更新Nginx
cd ../make upgrade
上面介绍了Nginx常用的负载均衡的策略,有人说是5种,是把轮询和加权轮询归为一种,也有人说是6种。那么在咱们以后的开发中到底使用哪种,这个需要根据实际项目的应用场景来决定的。
upstream backend{server 192.168.200.146:9001;server 192.168.200.146:9002;server 192.168.200.146:9003;}server {listen 8083;server_name localhost;location /{proxy_pass http://backend;}}
upstream backend{server 192.168.200.146:9001 weight=7;server 192.168.200.146:9002 weight=5;server 192.168.200.146:9003 weight=3;}server {listen 8083;server_name localhost;location /{proxy_pass http://backend;}}
upstream videobackend{server 192.168.200.146:9001;server 192.168.200.146:9002;}upstream filebackend{server 192.168.200.146:9003;server 192.168.200.146:9004;}server {listen 8084;server_name localhost;location /video/ {proxy_pass http://videobackend;}location /file/ {proxy_pass http://filebackend;}}
upstream itcastbackend{server 192.168.200.146:9001;server 192.168.200.146:9002;}upstream itheimabackend{server 192.168.200.146:9003;server 192.168.200.146:9004;}server {listen8085;server_name ;location / {proxy_pass http://itcastbackend;}}server {listen8086;server_name ;location / {proxy_pass http://itheimabackend;}}
upstream backend{server 192.168.200.146:9001;server 192.168.200.146:9002;server 192.168.200.146:9003;}server {listen80;server_name localhost;location /file/ {rewrite ^(/file/.*) /server/$1 last;}location / {proxy_pass http://backend;}}
上面就是小居数码小编今天给大家介绍的关于(nginx实现负载均衡原理)的全部内容,希望可以帮助到你,想了解更多关于数码知识的问题,欢迎关注我们,并收藏,转发,分享。
94%的朋友还想知道的:
(436)个朋友认为回复得到帮助。
部分文章信息来源于以及网友投稿,转载请说明出处。
本文标题:nginx负载均衡的三种方式(nginx实现负载均衡原理):http://sjzlt.cn/shuma/153797.html