文章目录

  • ​​一、概述​​
  • ​​二、架构图​​
  • ​​三、实现步骤​​
  • ​​第一步:拷贝两份nginx配置文件(静态代理)​​
  • ​​第二步:修改新拷贝的nginx81.conf和nginx82.conf配置文件​​
  • ​​第三步:负载均衡Nginx配置(nginx.conf)​​
  • ​​动态资源的负载均衡​​
  • ​​静态资源的负载均衡​​
  • ​​第四步:启动三台nginx服务器,启动两台tomcat服务器​​
  • ​​第五步:浏览器输入http://192.168.235.128/myweb/进行测试​​

一、概述

Nginx的负载均衡和静态代理结合在一起,我们可以实现动静分离,这是实际应用中常见的一种场景。

动态资源,如jsp由tomcat或其他web服务器完成
静态资源,如图片、css、js等由nginx服务器完成

它们各司其职,专注于做自己擅长的事情
动静分离充分利用了它们各自的优势,从而达到更高效合理的架构

二、架构图

Nginx学习七:动静分离_服务器


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

三、实现步骤

第一步:拷贝两份nginx配置文件(静态代理)

Nginx学习七:动静分离_服务器_02

第二步:修改新拷贝的nginx81.conf和nginx82.conf配置文件

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

Nginx学习七:动静分离_静态代理_03


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

Nginx学习七:动静分离_静态代理_04


静态代理的配置

Nginx学习七:动静分离_linux_05

第三步:负载均衡Nginx配置(nginx.conf)

动态资源的负载均衡

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;
}

静态资源的负载均衡

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;
}

Nginx学习七:动静分离_nginx_06

第四步:启动三台nginx服务器,启动两台tomcat服务器

Nginx学习七:动静分离_静态代理_07

第五步:浏览器输入http://192.168.235.128/myweb/进行测试

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