云服务器nginx和tomcat实现动静分离

云服务器nginx和tomcat实现动静分离

1.动态和静态的区别

静态请求:不需要访问数据库
动态请求:需要访问数据库,登录

静态页:打开一个网页,不需要访问数据库
动态页:打开一个网页,需要访问数据库

企业中无论是静态资源还是动态资源,都需要做共享存储

#Tomcat和Nginx的区别
从应用方面 tomcat一般是做'动态解析'才会用得到,支持jsp(Java Server Pages包括html和java,可以写java代码也可以写html和js代码,就像.asp页面一样可以写c#和html还有js)的解析,需要配置JDK支持 
nginx,则一般是做'静态'(html和js),本身不具备动态解析功能,需要配置其他插件或通过其他软件协同才具备动态功能,比如php,tomcat,或者proxypass到win2008的iis服务器做ASP的动态链接等,
但nginx在静态上的功能非常强大,也可做访问控制,而且可以做成各种协议负载服务器,包括流媒体的也可以做,具体得去官方网站去看; 
在性能方面 如果再不做系统调优的情况下 'tomcat一般支持并发(并发是一秒钟的访问量)并不高100个差不多了' 'nginx在静态方面支持并发轻松达几万'
2.动静分离优点

1.降低Web服务器负载,加快网站访问速度

服务器只需编译运行动态文件,大大降低了服务器负载。因为不用加载那些静态文件,所以降低了服务器带宽需求。网站瞬间加载,不会出现卡顿的问题。

2.海量存储空间存储费用最低

服务器在磁盘满了之后,扩容所需的投资是巨大的。

3.流量费用低

服务器流量基本是以带宽计费,费用也是高的不行。如果用服务器存放图片等媒体文件,加载慢不说,还特别贵。

3.准备三台服务器
负载均衡nginx
静态资源nginx service
动态资源tomcat service

nginx服务器搭建lnmp架构可以更好的做测试详情可以看lnmp搭建教程

4.部署资源

1.在tomcat访服务器上部署动态资源,tomcat默认的站点目录是在ROOT下

cd /app/tomcat/webapps/ROOT
#创建一个随机数动态资源,但是这里没有用到数据库
[root@cloud2 ROOT]# cat 1.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<HTML>
    <HEAD>
        <TITLE>study</TITLE>
    </HEAD>
    <BODY>
        <%
            Random rand = new Random();
            out.println("<h1>随机数:<h1>");
            out.println(rand.nextInt(99)+100);
        %>
    </BODY>
</HTML>

测试这个资源是否可以访问到IP/8080/1.jsp

在这里插入图片描述

2.在nginx服务器上部署资源

#上传一个图片以jpg或者png等结尾
mkdir -p /app/webtest
[root@cloud1 html]# ls /app/webtest/
1.jpg

修改nginx的服务器配置让它访问到这个jpg图片

#添加这一条匹配规则
        location ~* \.(jpg|png)$ {
            root  /app/webtest;
            gzip  on;  
        }
#进行测试
[root@cloud1 sbin]# ./nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
#测试没错以后再重启服务即可
[root@cloud1 sbin]# systemctl restart nginx.service 
测试访问IP/1.jpg
我使用的图片如下图:

在这里插入图片描述

5.再负载均衡服务器上整合两台服务器的资源

更改nginx的配置

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
  upstream state {
          server 47.96.154.231:80;
  }
  upstream trend {
          server 121.41.52.208:8080;
  }
  server {
          listen 80;
          server_name lvs;
          location ~* \.(jpg|png)$ {
                  proxy_pass http://state;
                  proxy_set_header Host $http_host;
          }
          location ~ \.jsp$ {
                  proxy_pass http://trend;
                  proxy_set_header Host $http_host;
          }
  }
}
#测试
[root@cloud3 sbin]# ./nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@cloud3 sbin]# systemctl restart nginx.service 

最后在使用负载均衡服务器的IP/1.jsp或者IP/1.jpg即可访问到相对应资源的服务器

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值