案例No.51:Nginx动静分离

1、web01配置静态资源

[root@web01 ~]# cd /etc/nginx/conf.d/
#配置静态资源
[root@web01 conf.d]# cat dj_oldboy.conf
server{
listen 80;
      server_name pic.drz.com;
      root /code;
      index index.html;
​
      location ~* .*\.(jpg|png|gif)$ {
              root /code/images;
      }
}
​
#配置一个主页
[root@web01 conf.d]# echo "zls_test_web01" > /code/index.html
#创建图片目录
[root@web01 conf.d]# mkdir -p /code/images/
[root@web01 conf.d]# cd /code/images/
​
#上传一个静态文件
[root@web01 images]# rz cjk.gif
​
修改域名解析文件,hosts,10.0.0.7   pic.drz.com  
​
[root@web01 conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@web01 conf.d]# nginx -s reload
​
​

打开浏览器,访问http://pic.drz.com,页面跳转至静态页面。

打开浏览器,访问http://pic.drz.com/pic5.gif,页面显示动态图。

2、接下来做动静分离,将.jsp、.php、.java等内容写在web02上,web02配置动态资源

[root@web02 ~]# yum install -y tomcat
[root@web02 ~]# mkdir -p /usr/share/tomcat/webapps/ROOT
[root@web02 ~]# cat /usr/share/tomcat/webapps/ROOT/java_test.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<HTML>
  <HEAD>
      <TITLE>曾老湿JSP Page</TITLE>
  </HEAD>
  <BODY>
      <%
          Random rand = new Random();
          out.println("<h1>曾老湿随机数:<h1>");
          out.println(rand.nextInt(99)+100);
      %>
  </BODY>
</HTML>
​
[root@web02 webapps]# systemctl start tomcat

打开浏览器,访问http://10.0.0.8:8080/java_test.jsp,页面显示静态页面,是一个随机数。

3、在负载均衡上调度

[root@lb01 conf.d]# cat proxy_ds.conf 
upstream static {
      server 172.16.1.7:80;
}
​
upstream java {
      server 172.16.1.8:8080;
}
​
server {
      listen 80;
      server_name pic.drz.com;
​
      location ~* \.(jpg|png|gif)$ {
              proxy_pass http://static;
              proxy_set_header Host $http_host;
      }
​
      location ~ \.jsp {
              proxy_pass http://java;
              proxy_set_header Host $http_host;
      }
}
​
​
修改域名解析文件,hosts,10.0.0.5   pic.drz.com ,通过负载访问动态与静态资源
​
​
[root@lb01 conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@lb01 conf.d]# nginx -s reload

打开浏览器,访问http://pic.drz.com/pic5.gif,页面显示动态图。

打开浏览器,访问http://pic.drz.com/java_test.jsp,页面显示静态页面。

4、负载均衡上整合动态和静态的html文件,写html文件使动态资源和静态资源显示在同一个页面中。

#编辑配置文件
[root@lb01 ~]# cat /etc/nginx/conf.d/proxy_ds.conf
upstream static {
      server 172.16.1.7:80;
}
​
upstream java {
      server 172.16.1.8:8080;
}
​
server {
      listen 80;
      server_name pic.drz.com;
       
      location / {
          root /code;
          index index.html;
      }
       
      location ~* \.(jpg|png|gif)$ {
              proxy_pass http://static;
              proxy_set_header Host $http_host;
      }
​
      location ~ \.jsp {
              proxy_pass http://java;
              proxy_set_header Host $http_host;
      }
}
​
[root@lb01 ~]# mkdir -p /code
​
#编辑整合后的index.html
[root@lb01 ~]# cat /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://pic.drz.com/java_test.jsp",
      success: function(data){
              $("#get_data").html(data)
      },
      error: function() {
              alert("哎呦喂,失败了,回去检查你服务去~");
      }
      });
});
</script>
      <body>
              <h1>曾老湿带你测试动静分离</h1>
              <img src="http://pic.drz.com/cjk.gif">
              <div id="get_data"></div>
      </body>
</html>
​
​
修改域名解析文件,hosts,10.0.0.5   pic.drz.com ,通过负载访问动态与静态资源
​
​
[root@lb01 conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@lb01 conf.d]# nginx -s reload
​

Linux架构之Nginx 动静分离的更多相关文章

  1. Nginx动静分离架构

    Nginx动静分离简单来说就将动态与静态资源分开,不能理解成只是单纯的把动态页面和静态页面物理分离,严格意义上说应该是动态请求跟静态请求分开,可以理解成使用Nginx处理静态页面,Tomcat,Res ...

  2. Nginx动静分离架构&&HA-LB集群整合

    Nginx动静分离简单来说就将动态与静态资源分开,不能理解成只是单纯的把动态页面和静态页面物理分离,严格意义上说应该是动态请求跟静态请求分开,可以理解成使用Nginx处理静态页面,Tomcat,Res ...

  3. Nginx 动静分离与负载均衡的实现

    一.前提 企业中,随着用户的增长,数据量也几乎成几何增长,数据越来越大,随之也就出现了各种应用的瓶颈问题. 问题出现了,我们就得想办法解决,一般网站环境,均会使用LAMP或者LNMP,而我们对于网站环 ...

  4. Nginx系列二:(Nginx Rewrite 规则、Nginx 防盗链、Nginx 动静分离、Nginx+keepalived 实现高可用)

    一.Nginx Rewrite 规则 1. Nginx rewrite规则 Rewrite规则含义就是某个URL重写成特定的URL(类似于Redirect),从某种意义上说为了美观或者对搜索引擎友好, ...

  5. nginx动静分离简单实例实现

    什么是动静分离? Nginx 动静分离简单来说就是把动态和静态请求分开,不能理解成只是将动态页面和静态页面物理分离.严格意义上说应该是动态请求和静态请求分开,可以理解成使用 nginx 处理静态页面, ...

  6. Nginx 动静分离概述

    目录 Nginx 动静分离是什么 Nginx 动静分离配置 Nginx 动静分离是什么 Nginx 动静分离,指的是静态资源请求由 Nginx 处理,动态资源请求由 php-fpm 处理或 tomca ...

  7. Nginx动静分离经典

    Nginx:安装nginx之前需要安装pcre包和zlib以支持重写,正则以及网页压缩等等]把所需的包下载到/usr/src下[根据自己的习惯,路径可以改变]1.首先安装pcre: cd /usr/s ...

  8. Nginx动静分离实现

    Nginx动静分离实现: Nginx是一种轻量级,高性能,多进程的Web服务器,非常适合作为静态资源的服务器使用,而动态的访问操作可以使用稳定的Apache.Tomcat及IIS等来实现,这里就以Ng ...

  9. Nginx动静分离

    动静分离 Nginx动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路. ...

随机推荐

  1. (转)C#进阶之WebAPI

    转:https://www.cnblogs.com/yuchenghao/p/10598825.html 首先第一点:什么是WebAPI? 首先我们了解一下.net framework 的框架构成, ...

  2. SecureCRT通过密钥登录

    转载  https://blog.csdn.net/langkeziju/article/details/53024031 说明:一般的密码方式登录容易被密码暴力破解.所以一般我们会将 SSH 的端口 ...

  3. 机器学习中L1,L2正则化项

    搞过机器学习的同学都知道,L1正则就是绝对值的方式,而L2正则是平方和的形式.L1能产生稀疏的特征,这对大规模的机器学习灰常灰常重要.但是L1的求解过程,实在是太过蛋疼.所以即使L1能产生稀疏特征,不 ...

  4. fiddler之编辑请求(composer)-发包

    在需要针对接口进行发包操作时,可以使用composer标签,去编辑请求内容,进行请求. 界面显示如下: 1.Parsed 在该分页中,选择请求方法.设置请求地址和协议版本,上部分为请求的头信息.下半部 ...

  5. golang 导出CSV文件中文乱码的问题

    golang  导出CSV文件中文乱码的问题 解决办法: 在csv文件的开头写入 UTF-8 BOM // 创建文件 dstf, err := os.Create("./data/" ...

  6. Oracle11g数据文件DBF迁移

    最近接手了一个以前同事遗留下来的项目,时机比较敏感,因为要召开11届全国少数名族运动会.建国70周年,以及香港暴乱,其中网站上挂载有十几个系统的入口链接,不巧的是其中一个系统存在若口令,被公安部安全局 ...

  7. 【MM系列】SAP 财务帐与后勤不一致情况

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 财务帐与后勤不一致情况   ...

  8. VM CentOS建立共享文件夹实现VS Code在windows环境下go开发,在centos环境里编译

    简介 笔记本没办法更换系统,但是开发又必须在linux环境下进行,直接在vm界面环境下开发,卡的都蒙13.无奈之下想到这个法子,来解决现有尴尬的局面>>> 共分3个部分安装: (1) ...

  9. switch条件变量的取值类型

    switch条件变量的取值类型主要有以下六种: 1)JDK1.5(不含JDK1.5)之前只能是byte.short.int.char类型,不能是float.double.long.boolean类型. ...

  10. SpringBoot中定时任务默认是串行执行 如何设置并行

    SpringBoot项目中,定时任务默认是串行执行的,不论启动多少任务,都是一个执行完成,再执行下一个. 如何设置并行呢? @EnableAsync  和@Async 这两个注解来实现 ,具体如下: ...