美文网首页
Nginx之反向代理与负载均衡实现动静分离实战

Nginx之反向代理与负载均衡实现动静分离实战

作者: 心疼你萌萌哒 | 来源:发表于2018-07-10 21:46 被阅读0次
负载均衡指的是对请求数据包的转发,从负载均衡下面的节点服务器来看,接收到的请求还是来自访问负载均衡器
的客户端的真实用户,而反向代理服务器指的是接收到用户的请求后,会代理用户重新发起请求代理下的节点服务器,最后把数据返回给客户端用户,在节点服务器看来,范文的节点服务器的客户端用的就是反向代理服务器了,而非真实的网站访问用户。

Nginx http功能模块

ngx_nginx upstream       负载均和模块,可以实现网站的负载均衡功能及节点的健康检查

ngx_http_proxy_module      Proxy模块,用于把请求后抛给服务器节点或upstream服务器池

Nginx的upstream支持5种分配方式。其中,前三种为Nginx原生支持的分配方式,后两种为第三方支持的分配方式:

1)rr轮询     
        轮询是upstream的默认分配方式,即每个请求按照时间顺序轮流分配到不同的后端服务器,如果某个后端
服务器down掉后,能自动剔除。按照1:1轮询。
        upstream backend {
            server 192.168.1.101:88;
            server 192.168.1.102:88;
        }
2)wrr轮询       
        轮询的加强版,即可以指定轮询比率,weight和访问几率成正比,主要应用于后端服务器异质的场景下。
        upstream backend {
            server 192.168.1.101 weight=1;
            server 192.168.1.102 weight=2;
            server 192.168.1.103 weight=3;
        }
3)ip_hash  (upstream_fair)      
        每个请求按照访问ip(即Nginx的前置服务器或者客户端IP)的hash结果分配,这样每个访客会固定访问
一个后端服务器,可以解决session一致问题。
        upstream backend {
            ip_hash;
            server 192.168.1.101:81;
            server 192.168.1.102:82;
            server 192.168.1.103:83;
        }
注:当使用ip_hash时,服务器状态不可使用weight和backup
4)fair    (第三方的hash模块)      
        fair顾名思义,公平地按照后端服务器的响应时间(rt)来分配请求,响应时间短即rt小的后端服务器优
先分配请求。
        upstream backend {
            server 192.168.1.101;
            server 192.168.1.102;
            fair;
        }
5)url_hash
        与ip_hash类似,但是按照访问url的hash结果来分配请求,使得每个url定向到同一个后端服务器,主要应
用于后端服务器为缓存时的场景下。
        upstream backend {
            server 192.168.1.101;
            server 192.168.1.102;
            hash $request_uri;
            hash_method crc32;
        }

upstream支持的状态参数

down:               暂停对该服务器的调度
backup:             类似于LVS Sorry Server,当所有的非backup的服务器故障
max_fails:          请求失败的次数,默认为1
fail_timeout:       在经历max_fails次失败后,暂停服务的时间
              [vip: 10.0.0.11]

        [LB1 Nginx]         [LB2 Nginx]
        10.0.0.20           10.0.0.21

          web1     web2              phpserver1     phpserver2
    10.0.0.22      10.0.0.23           10.0.0.24       10.0.0.24

一、实施过程

后端服务器部署详细过程:
安装软件:
    # yum install nginx php php-fpm -y
    # vim /etc/nginx/nginx.conf   //添加php配置
    在server里面添加如下配置:
    location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
   
   修改php-fpm进程账户并开启php-fpm的进程: 端口是9000  
   #vim /etc/php-fpm.d/www.conf  //修改如下参数,默认值是apache
   user = nginx
   group = nginx
   
   为什么设置成nginx:
       因为nginx.conf配置的账户为nginx
   
   # systemctl start php-fpm
       

前端nginx反向代理服务器:
upstream web {
    server 10.0.0.22 weight=1 max_fails=2 fail_timeout=2;
        server 10.0.0.23 max_fails=2 fail_timeout=5 down;
        }
upstream phpserver {
    server 10.0.0.24 backup;
    server 10.0.0.25;
        }       #上面的配置写到http里面server外面
       
server {
    listen 80;
        server_name www.baidu.com;
location ~* \.html${            #html的配置
        proxy_pass http://web;
        }

location ~* \.php$ {         #php的配置
        proxy_pass http://phpserver;
    proxy_set_header Host   $host;
        proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_connect_timeout 30;
    proxy_send_timeout 60;
    proxy_read_timeout 60;

    proxy_buffering on;      
    proxy_buffer_size 32k;   
    proxy_buffers 4 128k;
    proxy_busy_buffers_size 256k;
    proxy_max_temp_file_size 256k;
        }
}

相关文章

  • Nginx使用

    一.nginx反向代理 二.nginx负载均衡 三.动静分离 四.总结

  • Nginx应用场景

    反向代理,负载均衡,动静分离 1.反向代理 修改nginx配置,并重新加载 重新加载nginx配置./nginx ...

  • 玩转nginx

    本文内容包括: nginx配置实例之反向代理; nginx配置实例之动静分离; nginx配置实例之负载均衡; n...

  • 2020-03-31 Nginx反向代理与动静分离集群架构应用实

    1. Nginx负载均衡配置实战 1.1 Nginx负载均衡反向代理相关实践 1.1.1 实现为WWW服务代理 (...

  • nginx系列3——nginx反向代理、动静分离、负载均衡

    nginx反向代理、动静分离、负载均衡 反向代理 要说反向代理,我们就先要理解正向代理 ,下面我们就谈谈正向代理和...

  • 分布式--Nginx入门

    之前使用nginx,都是使用了它的反向代理功能,除了反向代理外,nginx还具备负载均衡、动静分离、高可用。这些都...

  • nginx 能做的事

    Nginx主要功能: 1、反向代理2、负载均衡3、HTTP服务器(包含动静分离)4、正向代理 一、反向代理 反向代...

  • nginx 能做什么?

    Nginx主要功能: 1、反向代理2、负载均衡3、HTTP服务器(包含动静分离)4、正向代理 一、反向代理 反向代...

  • Nginx常用配置及其他跨域处理(前端)

    Nginx主要功能: 1. 负载均衡2. 反向代理3. 动静分离4. 配置https 负载均衡 负载均衡是一门计算...

  • 全面了解 Nginx 到底能做什么

    Nginx能做什么 1.反向代理 2.负载均衡 3.HTTP服务器(包含动静分离) 4.正向代理 反向代理 反向代...

网友评论

      本文标题:Nginx之反向代理与负载均衡实现动静分离实战

      本文链接:https://www.haomeiwen.com/subject/tuoqpftx.html