• Nginx的负载均衡和静态代理结合在一起,我们可以实现动静分离,这是实际应用中常见的一种场景。
  • 动态资源,如jsp由tomcat或其他web服务器完成
  • 静态资源,如图片、css、js等由nginx服务器完成
  • 它们各司其职,专注于做自己擅长的事情
  • 动静分离充分利用了它们各自的优势,从而达到更高效合理的架构

    7.1 动静分离案例

    7.1.1 架构图

    image.png
    整个架构中,一个nginx负责负载均衡,两个nginx负责静态代理。Nginx在一台Linux上安装一份,可以启动多个Nginx,每个Nginx的配置文件不一样即可

7.1.2 实现步骤

(1)拷贝两份nginx配置文件(静态代理)

image.png

(2)修改新拷贝的nginx81.conf和nginx82.conf配置文件

  • Nginx81.conf端口号,因为这两个机器只需要做静态代理,所以删除掉负载均衡的配置

image.png

  • Nginx82.conf端口号,因为这两个机器只需要做静态代理,所以删除掉负载均衡的配置

image.png

  • 静态代理的配置

image.png

(3)负载均衡Nginx配置(nginx.conf)

A、动态资源的负载均衡

upstream www.myweb.com {
server 127.0.0.1:9100 weight=5;
server 127.0.0.1:9200 weight=2;
}

location /myweb {
proxy_pass http://www.myweb.com;
}
image.png
image.png

B、静态资源的负载均衡

upstream static.myweb.com {
server 127.0.0.1:81 weight=1;
server 127.0.0.1:82 weight=1;
}

location ~ .*/(css|js|img|images) {
proxy_pass http://static.myweb.com;
}
image.png
image.png

(4)启动三台nginx服务器,启动两台tomcat服务器

image.png

(5)浏览器输入http://192.168.235.128/myweb/进行测试

关闭掉一台nginx静态代理服务器
关闭掉一台tomcat服务器