Nginx——动静分离

1、动静分离:

将动态请求与静态请求分离开,动态请求经过nginx访问tomcat服务器,nginx可以直接做静态请求服务器,静态请求直接由nginx处理,动态请求由tomcat处理。

2、动静分离实现方式:

(1)将静态资源独立成单独域名,放在独立的服务器上,如七牛云;

(2)动静资源混合发布,通过nginx服务器指定静态资源后缀名,实现不同请求的转发。expire参数可以设置静态资源在缓存中过期时间,避免请求频繁访问nginx。

(expire设置过期时间后,请求无需访问服务器,直接在浏览器确定是否过期,未过期则直接获取,不会产生额外流量)

Nginx——动静分离_第1张图片

3、动静分离实例:

(1)实例内容:

①两台tomcat服务器,端口号分别为8080、8081;

②在两台tomcat下部署jsp页面,jsp页面里面带有图片访问(静态资源);

③通过访问nginx代理服务器地址,实现jsp页面显示,请求访问nginx,nginx轮询分发给两台tomcat服务器,静态资源则直接访问静态文件获取;

④访问/image/为静态请求,此处使用linux操作。

如下图:

Nginx——动静分离_第2张图片

 (2)具体实现步骤:

①在tomcat8080和tomcat8081下的webapps目录下,创建/edu/index.jsp,编辑index.jsp页面

//创建edu文件
mkdir tomcat8080/webapps/edu
mkdir tomcat8081/webapps/edu

//创建index.jsp页面
touch tomcat8080/webapps/edu/index.jsp
touch tomcat8081/webapps/edu/index.jsp

//编辑两个index.jsp页面
vim tomcat8080/webapps/edu/index.jsp
vim tomcat8081/webapps/edu/index.jsp

tomcat8080下index.jsp页面内容:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ZCO56uv5bCP54y_,size_20,color_FFFFFF,t_70,g_se,x_16

 tomcat8081下index.jsp页面

Nginx——动静分离_第3张图片

 

②启动两台tomcat服务器,找到tomcat中bin目录

//启动命令
./startup.sh

③配置/usr/ocal/nginx/conf下的nginx.conf配置文件:

cd /usr/local/nginx/conf

vim nginx.conf

在http模块中配置上游服务器,即nginx代理下的服务器ip地址,nginx使用轮询分发模式:

(此处配置了tomcat服务器8080端口,和8081端口)

 upstream myserver {
        server 192.168.23.129:8080 ;
        server 192.168.23.129:8081 ;
 }

在server模块中配置动态请求分发地址和静态请求分发地址:

静态请求直接访问data文件下的资源;

动态请求则是轮询访问端口号为8080的服务器和端口号为8081的服务器。

 //静态请求代理
 location /image/ {
        root /data/;
   }


//动态请求代理
//myserver要和上游服务器指定名字一样
 location / {
        proxy_pass http://myserver;
 }

④进入目录/usr/local/nginx/sbin,启动nginx服务器:

(一定要关闭虚拟机防火墙)

./nginx
//关闭防火墙
systemctl stop firewalld

(3)测试,访问ip:http://192.168.23.129:80/edu/index.jsp:

第一次访问的后台服务器是端口号为8080的tomcat服务器,静态资源为data文件下资源:

Nginx——动静分离_第4张图片

 第二次访问端口号为8081的tomcat服务器,静态资源为data文件下资源:

Nginx——动静分离_第5张图片

 测试成功!!!!!!!

 

你可能感兴趣的:(nginx)