nginx 负载均衡,反向代理配置

1.DNS域名解析:

host文件:在Windows中可以通过C:\Windows\System32\drivers\etc\hosts文件来设置。

 

2.外网映射工具:

可以让外网访问本地应用程序:常用的外网测试工具有natapp、ngrok

 

 

3.nginx应用场景:

    1、http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。

     2、虚拟主机。可以实现在一台服务器虚拟出多个网站,例如个人网站使用的虚拟机。

     3、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会应为某台服务器负载高宕机而某台服务器闲置的情况。

     4、nginz 中也可以配置安全管理、比如可以使用Nginx搭建API接口网关,对每个接口服务进行拦截。

 

 

4.nginx虚拟主机配置:

基于域名配置虚拟主机:修改nginx conf下的nginx.conf配置文件,其中的server设置如下,当客户端访问www.oltest.com时,直接跳转到nginx下data/test去找index.html index.htm文件。

 server
  {
        listen       80;
        server_name  www.oltest.com;
        location / {
            root   data/test;
            index  index.html index.htm;
        }
  }
 
  server {
        listen       80;
        server_name  www.oltest2.com;
        location / {
            root   data/test2;
            index  index.html index.htm;
        }
    }

 

 

 

5.nginx反向代理:

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

 

反向代理的好处

反向代理的好处隐藏真实内部ip地址,请求先访问nginx代理服务器(外网可以访问到),在使用nginx服务器转发到真实服务器中。

反向代理配置文件nginx.conf server配置:

server {

        listen       80;

        server_name  www.oltest.com;

   #匹配所有以/开头请求

        location / {

           proxy_pass http://127.0.0.1:8080;    配置转发路径

            index  index.html index.htm;

        }

    }

location的作用

  location指令的作用是根据用户请求的URI来执行不同的应用,也就是根据用户请求的网站URL进行匹配,匹配成功即进行相关的操作。

location的语法

已=开头表示精确匹配;       ^~ 开头表示uri以某个常规字符串开头,不是正则匹配

~ 开头表示区分大小写的正则匹配;         ~* 开头表示不区分大小写的正则匹配

/ 通用匹配, 如果没有其它匹配,任何请求都会匹配到

 

 

6.nginx负载均衡:

 什么是负载均衡:

为了解决高并发,负载均衡器拦截到所有请求,再采用负载均衡算法(轮询,权重,ip绑定)分配到不同真实的服务上。

 

负载均衡的作用:

减轻单台服务器压力

 

服务器集群(分布式中常见问题)

1.分布式Session一致性问题           2.分布式Job幂等性(唯一性)问题           3.分布式生成全局 id   

4.分布式锁解决方案                        5.分布式配置中心                               6.分布式日志收集系统

 

 

四层负载和七层负载均衡的区别:

四层负载均衡,在网络模型中的传输层中,基于主要是基于tcp协议报文实现负载均衡(比如LVS、haproxy就是四层负载均衡器),使用改写报文的源地址和目的地址。

七层负载均衡,在网络模型中应用层中,基于URL或者HTTP协议实现负载均衡,Web服务器。

 

nginx配置负载均衡:

 upstream  backServer{

    server 127.0.0.1:8080;    //真实服务器地址 默认轮询算法实现负载均衡

    server 127.0.0.1:8081;    

}

轮询:每个请求按时间顺序逐一分配到不同的后端服务,如果后端某台服务器死机,自动剔除故障系统,使用户访问不受影响。

----------------------------------------------------------------------------------------------------------------------------

权重方式:

 upstream  backServer{

    server 127.0.0.1:8080  weight=1;   

    server 127.0.0.1:8081    weight=3;    

}

------------------------------------------------------------------------------------------------------------------------------

Ip绑定方式:可以解决session 一致性问题,但是不常用。

upstream  backServer{

    server 127.0.0.1:8080 ;

   server 127.0.0.1:8081 ;

   ip_hash;

}

每个请求按访问IP的哈希结果分配,使来自同一个IP的访客固定访问一台后端服务器,并且可以有效解决动态网页存在的session共享问题。俗称IP绑定。

---------------------------------------------------------------------------------------------------------------------------

server {

        listen       80;

        server_name  www.test.com;    //浏览器输入域名

        location / {

    ### 指定上游服务器负载均衡服务器

    proxy_pass http://backServer;

            index  index.html index.htm;

        }

    }

 

 

 

7.nginx配置故障转移:

当上游服务器(真实访问服务器),一旦出现故障或者是没有及时响应的话,应该直接轮训到下一台服务器,保证服务器的高可用。

server {

        listen       80;

        server_name  www.itmayiedu.com;

        location / {

    ### 指定上游服务器负载均衡服务器

         proxy_pass http://backServer;

   ###nginx与上游服务器(真实访问的服务器)超时时间 后端服务器连接的超时时间_发起握手等候响应超时时间

           proxy_connect_timeout 3s;

   ###nginx发送给上游服务器(真实访问的服务器)超时时间

            proxy_send_timeout 3s;

   ### nginx接受上游服务器(真实访问的服务器)超时时间

            proxy_read_timeout 3s;

            index  index.html index.htm;

        }

    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章