ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Nginx 动静分离概述

2020-06-01 22:51:28  阅读:193  来源: 互联网

标签:动静 请求 tomcat Nginx static 概述 服务器 root


目录

Nginx 动静分离是什么

Nginx 动静分离,指的是静态资源请求由 Nginx 处理,动态资源请求由 php-fpm 处理或 tomcat 处理,tomcat 服务本身是用来处理 JSP 代码的,同时 tomcat 也能处理静态资源,但 tomcat 本身处理静态效率不高,还会带来资源开销,动静分离的架构中让 tomcat 只处理JSP代码 。

在负载均衡服务器的服务器上, Nginx 根据客户端请求 URI 判断请求的是否为静态资源,如果请求的 URI 包含了 JPG、PNG 等字段,则由处理静态请求的服务器处理(部署 Nginx);如果请求的 URI 包含了 .php、.jsp 等字段,则由处理动态请求的服务器处理(部署 Tomcat)。

Nginx 动静分离配置

将动态请求和静态请求分配到不同的服务器,如获取数据库信息的请求分配到动态请求服务器,获取静态资源图片的请求分配到静态请求服务器,使用 Nginx 负载均衡代理实现动静分离,模拟环境如下:

服务器主机名 作用 服务 IP
lb01 负载均衡 nginx proxy 10.0.0.5
web01 静态资源 nginx static 10.0.0.7
web02 动态资源 tomcat server 10.0.0.8

负载均衡服务器配置:

# 负载均衡服务器 nginx 配置文件,根据请求的 URI 区分动态请求和静态请求
[root@lb01 ~]# vi /app/nginx/conf/conf.d/static_dynamic.conf 
upstream static {
        server 10.0.0.7;
}
upstream dynamic {
        server 10.0.0.8:8080;
}


server {
        listen 80;
        server_name all.com;

        location / {
                root /code;
                index index.html;
        }
        location ~ \.(jpg|gif|png)$ {
                proxy_pass http://static;
        }
        location ~ \.jsp {
                proxy_pass http://dynamic;
        }
}

# 前端代码,使用 Ajax 获取 .jsp 文件
[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://all.com/random.jsp",
        success: function(data){
                $("#get_data").html(data)
        },
        error: function() {
                alert("动静分离没有实现!");
        }
        });
});
</script>
        <body>
                <h1>动静分离测试</h1>
                <img src="http://all.com/1.jpg">
                <div id="get_data"></div>
        </body>
</html>

[root@lb01 ~]# nginx -s reload 

静态资源服务器配置:

# 静态资源服务器 nginx 配置文件
[root@web01 ~]# cat /app/nginx/conf/conf.d/static.conf 
server {
	listen 80;
	server_name static.com;
	root /static;
	index index.html;

	location ~* \.(jpg|png|gif)$ {
		root /static/images/;
	}
}

# 静态资源目录
[root@web01 ~]# tree /static/
/static/
├── images
│   └── 1.jpg
└── index.html

[root@web01 ~]# nginx -s reload 

动态资源服务器配置:

# 动态资源服务器,需要安装 tomcat
[root@web02 ~]# yum -y install tomcat

# 在 webapps 下创建一个 ROOT 目录,存放 .jsp 文件
[root@web02 ~]# mkdir -p /usr/share/tomcat/webapps/ROOT

# 编辑一个生成随机数的 .jsp 文件
[root@web02 ROOT]# cat random.jsp 
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<HTML>
    <HEAD>
        <TITLE>zzzwqh JSP Page</TITLE>
    </HEAD>
    <BODY>
        <%
            Random rand = new Random();
            out.println("<h1>Random:<h1>");
            out.println(rand.nextInt(99)+100);
        %>
    </BODY>
</HTML>

[root@web02 ~]# systemctl start tomcat

标签:动静,请求,tomcat,Nginx,static,概述,服务器,root
来源: https://www.cnblogs.com/zzzwqh/p/13028089.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有