Nginx反向代理与动静分离集群

一、简介

       代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中,再发送给客户机。

       正向代理,架设在客户机与目标主机之间,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。

       反向代理服务器架设在服务器端,通过缓冲经常被请求的页面来缓解服务器的工作量,将客户机请求转发给内部网络上的目标服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器与目标主机一起对外表现为一个服务器。

二、集群配置

  1. 负载均衡(ngx_http_upstream_module)

[root@lb01 ~]# cd /etc/nginx/conf.d/
[root@lb01 conf.d]# vim www.conf

upstream backend {
    server backend1.example.com:12345 weight=5;
    server 127.0.0.1:12345    max_fails=3  fail_timeout=30s;
    server unix:/tmp/backend2;
    server backup1.example.com:12345  backup;
}
标签参数说明
标签说明
server负载均衡后面节点地址可以是IP或域名
weight调节服务器的请求分配权重
max_fails定义最大的失败次数
fail_timeout定义失败之后重发的间隔时间
check开启对该服务的健康检查
backup热备份参数
maxconn指定可并发发送到该服务器的最大并发连接数
fall指定多少次不成功的健康检查后,即认为服务器为宕机状态
inter设置连续两次检查的间隔时间,单位毫秒
rise指定多少次连续成功的检查后,即认定该服务器处于可用状

  2. 反向代理(ngx_http_proxy_module)

[root@lb01 ~]# cd /etc/nginx/conf.d/
[root@lb01 conf.d]# vim www.conf

server {
    listen       80;
    server_name  www.southbay.com;
    location / {
       proxy_pass http://backend;
       proxy_set_header Host $host; 
       proxy_set_header X-Forwarded-For $remote_addr;
       proxy_next_upstream error timeout http_404 http_502 http_403;
    }
}
参数说明
参数说明
proxy_set_header设置反向代理向后端发送的请求头信息
proxy_buffer_size设置size用于读取从代理服务器接收到的响应的第一部分的缓冲区的
proxy_connect_timeout 定义后端节点与代理服务器建立连接的超时时间
proxy_send_timeout设置将请求传输到代理服务器的超时时间
proxy_read_timeout用于从代理的后端服务器读取响应时间
proxy_busy_buffers_size用于设置系统很忙时可以使用proxy_buffers大小,推荐大小proxy_buffers*2
proxy_buffers设置缓冲区的数量和大小
proxy_temp_file_write_size指定proxy缓存临时文件的大小

       在代理向后端服务器发送HTTP请求头中加入host字段信息后,若后端服务器配置有多个虚拟主机,他就可以识别代理的是那个虚拟主机。这是节点服务器多虚拟主机时的关键配置。

proxy_set_header Host $host; 

在反向代理请求后端节点服务器的请求头中增加获取的客户端ip字段信息,然后节点后端可以通过程序或者相关配置接收X-Forwarded-For传过来的真实用户IP信息。

proxy_set_header X-Forwarded-For $remote_addr;

  3. 根据用户设备转发($http_user_agent

[root@lb01 ~]# cd /etc/nginx/conf.d/
[root@lb01 conf.d]# vim www.conf

location / {
   if ($http_user_agent ~* iphone) {
       proxy_pass http://mobile;
   }
   if ($http_user_agent ~* Chrome) {
       proxy_pass  http://web;
   }
   proxy_pass http://default;
   proxy_set_header Host $host;
   proxy_set_header X-Forwarded-For $remote_addr;
   proxy_next_upstream error timeout http_404 http_502 http_403;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值