Nginx 虚拟主机配置及负载均衡


虚拟主机配置:


 在现实中,公司为了充分利用服务器资源 , 一台 Nginx 服务器会同时挂多个站点,这些站点可以基于80端口配置 N 多不同域名的服务器,那么,怎样实现这一功能呢,接下来就让我们学习一下,虚拟主机的配置


    首先,分别创建两个不同网站的目录:

       mkdir  -p  /data/html/{a,b}

    修改 Nginx 配置文件中的 server 段

    server{

        listen        80;

        server_name    www.a.com;

    

        location / {

            root        /data/html/a;

            index    index.html    index.htm

        }

    }


    server{

        listen        80;

        server_name    www.b.com;

    

        location / {

            root        /data/html/b;

            index    index.html    index.htm

        }

    }


通过修改客户端 HOSTS 指向两个域名,在浏览器中用域名访问测试效果


负载均衡配置:


    Nginx 通过配置 upstream 参数达到均衡后端多个实例


        Nginx 的upstream 目前支持 5 种算法分配方式:

            1> 轮询(默认 rr )

                每个请求按时间顺序逐一分配到后端不同的服务器,如果后端某台面服务器 

            down掉,自动剔除,待恢复自动添加上。

            2>Weight  权重

                指定轮询权重,权重越高,处理的请求越多,weight 和访问比率成正比,用于

            后端服务器性能不均的情况下

            3>ip_hash

                每个请求根据访问的IP 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题,一般用于登陆会话。

            4>fair (第三方)

                按后端服务器的响应时间来分配请求,响应时间越短的优先分配。

            5>url_hash (第三方)

                upstream  的 fail_timeout 和 max_fails 参数是用来判断负载均衡 upstream 中的某个 server 是否失效。




在nginx.conf 里简单的配置一个 app_web 均衡


            upstream  app_web {

                server   10.10.1.11:8080 weight=1 max_fails=2fail_timeout=30s;

                      server   10.10.1.12:8080 weight=1 max_fails=2fail_timeout=30s;

            }

        ***注均衡两台后端JAVA服务,在30秒内nginx会与后端的某个server通信检测,如果检测连接失败2次,则Nginx会认为该server已经失效,然后踢出转发列表,然后在接下来的30s内,nginx不再讲请求转发给失效的server


            更多参数:


             fail_timeout指定在多长时间内失败max_fails 次,将视为该 server 失效,踢出转发列表

            proxy_connect_timeoutproxy_read_timeout来控制响应时间

            proxy_read_timeout:连接成功后_等候后端服务器响应时间,其实已经进入后端的排队之中等候处理(也可以说是后端服务器处理请求的时间)   

                proxy_send_timeout :后端服务器数据回传时间,在规定时间之内后端服务器必须传完所有的数据。

                keepalive_timout:一个http产生的tcp连接在传送完最后一个响应后,还需要等待多少秒后,才关闭这个连接



你可能感兴趣的:(负载均衡,Nginx虚拟主机)