lnmp架构(六)——nginx+tomcat+jdk实现访问动态页面

文章目录

  • 一、什么是Tomcat
      • 1.1 Apache,Nginx和Tomcat的区别
      • 1.2 为什么要动静态资源分离
  • 二、实现访问动态页面

一、什么是Tomcat

Tomcat 服务器是从Apache开发而来的一个免费的、开源的、轻量级的Web 应用服务器,在中小型系统和并发访问用户不多的场合下被普遍使用,是开发和调试JSP 程序的首选。当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。

在我看来,tomcat是一个中间件,在B/S架构中,浏览器发出的http请求经过tpmcat中间件,转发到最终的目的服务器上,响应消息再通过tomcat返回给浏览器。tomcat在此过程中开启监听端口监听用户的请求,解析用户发来的http请求然后访问到你指定的应用系统,然后你返回的页面经过tomcat返回给用户。

1.1 Apache,Nginx和Tomcat的区别

1)Apache

Apache支持模块多,性能稳定,Apache本身是静态解析,适合静态HTML、图片等,但可以通过扩展脚本、模块等支持动态页面等。
缺点:配置相对复杂,自身不支持动态页面。
优点:相对于Tomcat服务器来说处理静态文件是它的优势,速度快。Apache是静态解析,适合静态HTML、图片等。
(Apche可以支持PHPcgiperl,但是要使用Java的话,你需要Tomcat在Apache后台支撑,将Java请求由Apache转发给Tomcat处理。)

2)Tomcat:

Tomcat是应用(Java)服务器,它只是一个Servlet(JSP也翻译成Servlet)容器,可以认为是Apache的扩展,但是可以独立于Apache运行。
缺点:可以说Tomcat 只能用做java服务器,tomcat接受的最大并发数有限,连接数过多,会导致tomcat处于"僵尸"状态,对后续的连接失去响应,需要结合nginx一起使用。
优点:动态解析容器,处理动态请求,是编译JSP/Servlet的容器。

三个端口:

8005:关闭tomcat通信接口
8009:与其他http服务器通信接口,用于http服务器集合
8080:建立http连接 用,如浏览器访问

3)Nginx
缺点:Nginx 只适合静态和反向代理。
优点:负载均衡、反向代理、处理静态文件优势。Nginx 处理静态请求的速度高于Apache。
Nginx有动态分离机制,静态请求直接就可以通过Nginx处理,动态请求才转发请求到后台交由Tomcat进行处理。

Apache和 Nginx用于处理静态资源, tomcat用来处理动态资源。Apache和Nginx相比,Nginx适合做前端服务器,适合做负载均衡。 一般情况下,使用的时候,都是 Apache+Tomcat一起使用或者 Nginx+tomcat一起使用。

参考

1.2 为什么要动静态资源分离

静态资源:指存储在硬盘内的数据,固定的数据,不需要计算的数据。

  • 如:图片、字体、js文件、css文件等等。在用户访问静态资源时,服务器会直接将这些资源返回到用户的计算机内。

动态资源:指需要服务器根据用户的操作所返回的数据,以及存储在数据库的数据,经过一系列逻辑计算后返回的数据。

  • 如:请求日期,时间,明天的天气等等会变动的数据。

Tomcat应用服务器是用来处理Servlet容器和JSP的,虽然它也可以处理HTML等等一系列静态资源,但是效率不如Nginx;而且tomcat对Servlet容器和JSP的运算已经有很大压力了,如果不分离会导致大量的性能浪费。我认为在应用服务方面,要遵循一条原则——一个服务只做一件事。要做动态请求就专做动态请求,要做静态请求就专做静态请求,这样才能提高性能。

二、实现访问动态页面

实验环境

主机(版本:ip) 功用
虚拟机server1(rhel6.5:172.25.2.1) lnmp环境主机
真机(rhel7.3:172.25.2.250) 测试机

实验原理
当用户访问动态资源时,将访问转到Tomcat应用服务器上,Tomcat将数据返回给Nginx,Nginx再返回给用户。

1、安装jdk和tomcat将其放至/usr/local目录下

tar zxf jdk-7u79-linux-x64.tar.gz  -C /usr/local
tar zxf apache-tomcat-7.0.37.tar.gz  -C /usr/local

lnmp架构(六)——nginx+tomcat+jdk实现访问动态页面_第1张图片lnmp架构(六)——nginx+tomcat+jdk实现访问动态页面_第2张图片
2、创建软链接

cd /usr/local
ln -s jdk1.7.0_79/ java
ln -s apache-tomcat-7.0.37/ tomcat

lnmp架构(六)——nginx+tomcat+jdk实现访问动态页面_第3张图片
java可以tab补齐,java -version可查看java的版本

lnmp架构(六)——nginx+tomcat+jdk实现访问动态页面_第4张图片

3、配置java的环境变量并使其生效

vim /etc/profile

export JAVA_HOME=/usr/local/jdk1.7.0_79
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export  PATH=$PATH:$JAVA_HOME/bin

source /etc/profile


在这里插入图片描述
在这里插入图片描述

验证环境配置是否正确

    echo $PATH
    echo $CLASSPATH  # 类加载路径
    echo $JAVA_HOME  # 命令的路径,不用写绝对路径了)
     which javac      # 编译
     which java       # 运行指令
   
   

lnmp架构(六)——nginx+tomcat+jdk实现访问动态页面_第5张图片
javacjava我们可以通过一个简单的脚本区别

lnmp架构(六)——nginx+tomcat+jdk实现访问动态页面_第6张图片

lnmp架构(六)——nginx+tomcat+jdk实现访问动态页面_第7张图片

4、打开tomcat,并访问。

cd /usr/local/tomcat
bin/startup.sh

在这里插入图片描述在这里插入图片描述

此时去浏览器访问172.25.2.1:8080

lnmp架构(六)——nginx+tomcat+jdk实现访问动态页面_第8张图片
此时访问172.25.2.1/index.jsp访问不到,是因为openresty开启的80端口

lnmp架构(六)——nginx+tomcat+jdk实现访问动态页面_第9张图片

5、编辑openresty的配置文件并重启服务,这个实验的配置文件是在上一个实验的配置文件的基础上修改的

[root@server1 tomcat]# cd /usr/local/openresty/nginx/conf/
[root@server1 conf]# vim nginx.conf 
 72         location ~ \.jsp$ {
 73             proxy_pass   http://127.0.0.1:8080;
 74         }
[root@server1 conf]# /usr/local/openresty/nginx/sbin/nginx -s reload

此时再去访问172.25.2.1/index.jsp就可以访问到

lnmp架构(六)——nginx+tomcat+jdk实现访问动态页面_第10张图片但这个页面的动态的jsp效果不明显,所以我们重新编辑测试页。

6、再次编辑测试页

[root@server1 conf]# cd /usr/local/tomcat/webapps/ROOT/
[root@server1 ROOT]# ls
asf-logo.png       bg-nav-item.png  favicon.ico        tomcat.gif        WEB-INF
asf-logo-wide.gif  bg-nav.png       index.jsp          tomcat.png
bg-button.png      bg-upper.png     RELEASE-NOTES.txt  tomcat-power.gif
bg-middle.png      build.xml        tomcat.css         tomcat.svg
[root@server1 ROOT]# vim test.jsp
server1-The time is: <%=new java.util.Date() %>

lnmp架构(六)——nginx+tomcat+jdk实现访问动态页面_第11张图片在这里插入图片描述

当我们再次访问时,时间会一直变化,实现了访问动态页面

lnmp架构(六)——nginx+tomcat+jdk实现访问动态页面_第12张图片

lnmp架构(六)——nginx+tomcat+jdk实现访问动态页面_第13张图片

lnmp架构(六)——nginx+tomcat+jdk实现访问动态页面_第14张图片

你可能感兴趣的:(lnmp,企业,Linux)