您的位置:首页 > 运维架构 > 反向代理

Nginx 的反向代理与负载均衡

2016-08-16 01:52 218 查看
反向代理与负载均衡

反向代理: 明确知道要访问哪个网站,借助代理网站来访问就是正向代理;第三方服务器为我们提供了访问服务器集群的内容,但我们不知道是哪台服务器提供的内容,这种代理方式称为反向代理。

负载均衡: 建立很多个服务器,这些服务器组成一个服务器集群,当有请求时中间服务器选择一个压力较小的服务器,然后将请求引入该选择的服务器,这样每个服务器压力趋于平衡,这就是负载均衡。负载均衡是通过反向代理来实现的。

Nginx 负载均衡的实现

1.新建一个配置文件fzjh.conf中

touch fzjh.conf


2.编辑配置文件

#设置用户
user root;
#工作衍生的进程数
worker_process 4;
#设置最大连接数
events{
worker_connections 2048;
}

#http部分是负载均衡服务器最重要的部分
http{

#设置负载均衡服务器待选列表
#test 服务器列表名称
upstream test{
#服务器地址可以是外网的也可以是内网的
server 192.168.1.1;
server 192.168.1.2;
}

server{
#监听网站的端口
listen:80;
#location /表示 监听网站的是根目录
location / {
proxy_pass http://test; }
}

}


3.加载配置文件

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/fzjh.conf


HTTP Upstream 模块

Upstream模块是Nginx服务器的一个重要模块, Upstream模块在实现 在轮询和客户端ip之间实现后端的负载均衡(即轮询算法)。常用指令有:

ip_hash指令

采用ip_hash指令,如果客户端请求已经访问了服务器A并登陆,那么第二次请求时,会将该请求通过哈希算法自动定位到该后端服务器中,而不是重新分配到别的服务器中。

user root;
worker_process 4;
events{
worker_connections 2048;
}

http{

upstream test{

#设置ip_hash; 将容易个用户引向同一个后端服务器
ip_hash;

server 192.168.1.1;
server 192.168.1.2;
}

server{
listen:80;
#location
location / {
proxy_pass http://test; }
}

}


server指定

server指定主要用于指定服务器名称和参数。

user root;
worker_process 4;
events{
worker_connections 2048;
}

http{
upstream test{

#weight=2 设置服务器权重 默认是1
server 192.168.1.1 weight=2;
server 192.168.1.2;
}

server{
listen:80;
#location
location / {
proxy_pass http://test; }
}

}


upstream指令

upstream指令主要用于设置一组在peoxy_pass和fastcgi_pass指令中使用代理服务器,默认负载均衡方式为轮询。

其他负载均衡的方法

负载均衡的核心就是建立服务器集群,负载均衡的实现分为硬件实现和软件实现两种方式。

优缺点:

硬件实现:运行效率非常高,但成本也非常高。

软件实现:运行效率不如硬件,成本也相对低很多。

Nginx就是通过软件的方式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: