09-Nginx动静分离

1、Nginx动静分离基本概诉

(1) 什么是动静分离?

动静分离是指通过中间件将动态请求和静态请求进行分离。

(2) 为什么要通过中间件将动态请求和静态请求进行分离?

为了减少不必要的请求消耗,同时能减少请求的延时。

(3) 通过中间件进行动静分离逻辑图
09-Nginx动静分离

2、Nginx动静分离场景实践

(1) 为了可以观察到效果,将动态和静态分别单独设置(企业中动静都在一台server上)
09-Nginx动静分离
(2) 环境规划
     主机名     应用环境      IP地址       用途
    Nginx-5     Nginx+PHP   192.168.2.5  动态资源
    Nginx-6     Nginx+PHP   192.168.2.6  静态资源
   7-Proxy1-8     Nginx     192.168.2.8  负载均衡
(3) 在192.168.2.6服务器上配置静态资源
[root@Nginx-6 conf.d]# cat ds.zxc.com.conf
server {
 listen 80;
 server_name ds.zxc.com;
 root /soft/code;
 index index.html;
 location ~* .*.(png|jpg|gif)$ {
  root /soft/code/images;
 }
}

#准备目录,以及静态相关图片
[root@Nginx-6 conf.d]# mkdir /soft/code/images -p
[root@Nginx-6 conf.d]# wget -O /soft/code/images/nginx.png http://nginx.org/nginx.png
[root@Nginx-6 conf.d]# systemctl restart nginx
(4) 在192.168.2.5服务器上配置动态资源
[root@Nginx-5 conf.d]# yum install -y tomcat
[root@Nginx-5 conf.d]# mkdir /usr/share/tomcat/webapps/ROOT
[root@Nginx-5 conf.d]# vim /usr/share/tomcat/webapps/RO0T/java_test.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<HTML>
 <HEAD>
  <TITLE>JSP Test Page</TITLE>
 </HEAD>
 <BODY>
   <%
  Random rand = new Random();
  out.println("<h1>Random number</h1>");
  out.println(rand.nextInt(99)+100);
   %>
 </BODY>
</HTML>

#重启tomcat服务
[root@Nginx-5 conf.d]# systemeTE start tomcat
(5) 在负载均衡192.168.2.8上配置调度,实现访问jsppng
[root@7-Proxy1-8 conf.d]# cat ds_proxy.conf
upstream static {
 server 192.168.2.6:80;
}

upstream java {
 server 192.168.2.5:8080;
}

server {
 listen 80;
 server_name ds.zxc.com;
 location / {
  root /soft/code;
  index index.html;
 }
 location ~* ^.*.(png|jpg|mp4|gif)${
  proxy_pass http://static;
  include proxy_params;
 }
 location ~ .*.jsp$ {
  proxy_pass http://java;
  include proxy_params;
 }
}

#重启Nginx
[root@7-Proxy1-8 conf.d]# systemctl restart nginx
 #静态测试   在浏览器中访问 ds.zxc.com/nginx.pnp
 #动态测试   在浏览器中访问 ds.zxc.com/java_test.jsp
(6) 在负载均衡192.168.2.8上整合出静态和动态资源的html文件
[root@7-Proxy1-8 conf.d]# mkdir /soft/code -p
[root@7-Proxy1-8 conf.d]# cat /soft/code/index.html
<html lang="en">
<head>
 <meta charset="UTF-8" />
 <title>测试ajax和跨域访问</title>
 <script src="http://libs.baidu.com/jquery/2.1.4/jquery.min.js "></script>
</head>
<script type="text/javascript">
$(document).ready(function(){
 $.ajax({
 type:"GET",
 url: "http://ds.zxc.com/java_test.jsp",
 success: function(data){
 $("#get_data").html(data)
 },
 error: function() {
 alert( "fail!!,请刷新再试!");
 }
 });
});
</script>
 <body>
  <h1>测试动静分离</h1>
  <img src="http://ds.zxc.com/nginx.png">
  <div id="get_data"></div>
 </body>
</html>

#直接访问 dc.zxc.com 就可以看见动静都在html上


原文始发于微信公众号(运维库):09-Nginx动静分离

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/64292.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!