Nginx

Nginx动静分离、负载均衡、容错

2019-02-03  本文已影响70人  黄靠谱

参考

nginx集群的5种配置方式
https://blog.csdn.net/u010081710/article/details/52691406

概述

动静分离可以分摊掉静态资源对web容器的资源消耗,提升服务器的访问速度。
nginx自带健康检查,剔除掉异常的节点,以及异常节点恢复正常后,会自动加入到集群当中的功能。

动静分离

优势:

  1. 提高静态资源的响应速度,因为nginx的响应静态资源的性能比传统的web容器要快的多
  2. 降低了web容器的请求压力,因为被nginx自己处理了
  3. 可以降低程序包的体积,比如把固定的大图片、文档、音视频可以存放在非项目war包里面,通过动静分离访问非项目路径下面的静态资源

下面的配置Demo,把所有的静态资源的请求,直接在 root路径下面匹配
物理位置:D:/install/java/apache-tomcat-7.0.33/webapps/SFA/物理文件
代码里面的位置 http://localhost:8080/SFA/frontEndKit/res/icon-font/style.css
代理以后匹配.css成功,最终进入%root/SFA/frontEndKit/res/icon-font/style.css,也就是D:/install/java/apache-tomcat-7.0.33/webapps +/SFA/frontEndKit/res/icon-font/style.css

注意事项:
1) windows的话 路径一定是正斜杠” / “, 而不能是 反斜杠 啊
2) 静态资源的话,用 root 开头
3) 静态资源的开头要按照规则 IP:8088/RESIRYSE

 server {
        listen       8088;
        server_name  recordZs;
    location ~ \.(gif|jpg|jpeg|png|bmp|swf)$ {  
        root    C:/Users/502764158/Desktop/test;  
    } 
# 所有以/dh-edu/resources/images 开头的   请求都会复制到/dh/dh-edu/resources/images 路径下去寻找资源
    location ~ ^(/dh-edu/resources/images|/dh-edu/resources/video|/dh-edu/resources/pdf) {
        root /dh;
    }
        location ~ \.(jsp|do)$ {
            proxy_pass http://localhost:8082;
        }
# 其它项目的静态资源都在
location ~* \.(gif|jpg|JPG|jpeg|png|css|js|ico|htm|html|swf)$ {

                root  apache-tomcat-9/front_end/eapp/resources;
        }

    }

~ 表示匹配正则表达式 \开始匹配 $表示结束匹配
注意正则表达式匹配的话 proxy_pass中不能包含 URL 元素,也就是 只有 http:***:8080 后面不能有元素

# 所有静态请求都由nginx处理,存放目录为html  
location ~ \.(gif|jpg|jpeg|png|bmp|swf)$ {  
    root    html;  
}  
  
# 所有动态请求都转发给tomcat处理  
location ~ \.(jsp|do)$ {  
    proxy_pass  http://local_tomcat;  
}

# 匹配所有以recordZs 打头的请求
location ~ ^recordZs*$ {
         proxy_pass http://localhost:8082;
}

负载均衡和容灾

默认nginx是具备检测集群节点健康状况的功能,会在一个连接超时后,标记该节点暂时不可用,并且自动使用集群中其它节点来响应

设备的状态有:

容灾的参数:一般配置容灾的时候,配置proxy_connect_timeout、fail_timeout即可

    upstream  netitcast.com {  #服务器集群名字   
    server    127.0.0.1:8080;
    server    127.0.0.1:38083;
    server    127.0.0.1:8083 backup;
    } 

 server {
        listen       88;
        server_name  localhost;
    location / {  
            proxy_pass http://netitcast.com;  
            proxy_connect_timeout       1;
        } 
    }
上一篇下一篇

猜你喜欢

热点阅读