nigix的使用反向代理-负载均衡(2)

原文参考:https://blog.csdn.net/zy1471162851/article/details/91795712

tip: nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器

nginx 的应用场景 (

http服务器,可以做网页静态服务器;

虚拟主机;

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


windows常用命令

nginx.exe -s stop –停止


nginx优缺点

占内存小,可以实现高并发连接、处理响应快。

可以实现http服务器、虚拟主机、反向代理、负载均衡。

nginx配置简单

可以不暴露真实服务器IP地址

一:反向代理

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

启动一个Tomcat 127.0.0.1:8080

使用nginx反向代理 8080.zyhome.com 直接跳转到127.0.0.1:8080
Host文件新增

127.0.0.1 8080.sea.com

127.0.0.1 8081.shan.com

nginx.conf 配置:

server {
        listen       80;
        server_name  8080.sea.com;
        location / {
            proxy_pass  http://127.0.0.1:8080;
            index  index.html index.htm;
        }
    }
     server {
        listen       80;
        server_name  8081.shan.com;
        location / {
            proxy_pass  http://127.0.0.1:8081;
            index  index.html index.htm;
        }
    }

 

二:负载均衡:

  

    轮询(默认)
    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 
    upstream backserver { 
    server 192.168.0.14; 
    server 192.168.0.15; 
    } 

    2、指定权重
    指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 
    upstream backserver { 
    server 192.168.0.14 weight=10; 
    server 192.168.0.15 weight=10; 
    } 

    3、IP绑定 ip_hash
    每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 
    upstream backserver { 
    ip_hash; 
    server 192.168.0.14:88; 
    server 192.168.0.15:80; 
    } 

4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。 
upstream backserver { 
server server1; 
server server2; 
fair; 
} 

5、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。 
upstream backserver { 
server squid1:3128; 
server squid2:3128; 
hash $request_uri; 
hash_method crc32; 
} 

配置代码:

upstream backserver 
  { server
127.0.0.1:8080; server 127.0.0.1:8081
; } server { listen 80; server_name www.zyhome.com; location / { proxy_pass http://backserver; index index.html index.htm;        }     }

 宕机轮训配置规则

upstream backserver 
  {
     server 127.0.0.1:8080;
     server 127.0.0.1:8081;
    }
server {
        listen       80;
        server_name  www.sea.com;
        location / {
                 proxy_pass  http://backserver;
                 index  index.html index.htm;
                 proxy_connect_timeout 1;
                 proxy_send_timeout 1;
                 proxy_read_timeout 1;
            }     
        }

三:配置DDOS


限制请求次数

设置Nginx、Nginx Plus的连接请求在一个真实用户请求的合理范围内。比如,如果你觉得一个正常用户每两秒可以请求一次登录页面,你就可以设置Nginx每两秒钟接收一个客户端IP的请求(大约等同于每分钟个请求)。

limit_req_zone $binary_remote_addr zone=one:10m rate=2r/s;

server {

...

location /login.html {

limit_req zone=one;

...

}

}

`limit_req_zone`命令设置了一个叫one的共享内存区来存储请求状态的特定键值,在上面的例子中是客户端IP($binary_remote_addr)。location块中的`limit_req`通过引用one共享内存区来实现限制访问/login.html的目的。


原文链接:https://blog.csdn.net/zy1471162851/article/details/91795712

猜你喜欢

转载自www.cnblogs.com/lshan/p/11596122.html