LNMP架构——nginx+jsp+tomcat完成客户端的动态请求

news/2025/2/26 7:20:34

首先,我先给大家画一张图,来理一下lnmp架构工作的整个过程
在这里插入图片描述
上一个实验其实我们通过php请求的是nginx服务器上的资源,还是静态资源
现在我们想实现动态获取,利用jsp动态获取tomcat服务器上面的资源

1.什么是tomcat?

Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目
由Apache、Sun和其他一些公司及个人共同开发而成
Tomcat是一个轻量级应用服务器
java程序写的网站用tomcat+jdk来运行
tomcat是一个中间件,真正起作用的,解析java脚本的是jdk
jdk(java development kit)是整个java的核心,它包含了java运行环境和一堆java相关的工具以及java基础库
最主流的jdk为sun公司发布的jdk,除此之外,其实IBM公司也有发布JDK,CentOS上也可以用yum安装openjdk

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为9.0。

2.给php和nginx加上缓存之后,现在来给tomcat前端加上缓存

这里我们使用tomcat这个web服务器(java、jdk)
tomcat这个服务很耗内存,企业当中一般在这个服务的主机上面不运行其他服务
可以查看tomcat.apache.org官网

3.实验环境

这个也是基于上一篇的,因此就不赘述了

4.具体实现过程如下

  • (1)从真机给server1传一个tomcat和jdk的包
先从真机给虚拟机传送一个tomcat和jdk的包
scp apache-tomcat-7.0.37.tar.gz jdk-7u79-linux-x64.tar.gz root@172.25.12.1:/root

在这里插入图片描述

  • (2)在server1上查看并且解压
tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/解压到指定目录下面,这么目录随便
tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/

在这里插入图片描述

  • (3)开始配置
cd /usr/local/进入指定的解压目录
ls查看
ln -s apache-tomcat-7.0.37 tomcat给tomcat服务做一个软连接

在这里插入图片描述

cd tomcat/进入tomcat服务的目录
ll查看tomcat目录下的东西

在这里插入图片描述

cd apache-tomcat-7.0.37/
ls查看

在这里插入图片描述

vim /etc/profile在环境变量当中加入java命令
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使其生效
java可以tab
java -version查看java的版本

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

cd tomcat/进入tomcat这个服务的配置目录
ls
cd logs/这个日志很重要
ls
cd webapps/发布目录
ls
cd ROOT/发布的东西
ls

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

cd /usr/local/tomcat/
cd bin/
ls
./startup.sh 执行脚本开启tomcat服务

在这里插入图片描述

 cd /usr/local/tomcat/logs/
cat manager.2019-07-25.log 
cat host-manager.2019-07-25.log 

在这里插入图片描述

在这里插入图片描述

netstat -antlupe,默认开启8080端口

在这里插入图片描述

在浏览器里面输入172.25.12.1:8080可以访问,因为指定了8080端口,可以直接访问tomcat服务器,实现动态请求
在浏览器里面输入172.25.12.1不可以动态访问,因为openresty默认开启80端口

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

cd /usr/local/openresty/
cd /usr/local/openresty/nginx/conf/
vim nginx.conf 里面没有jsp,jsp+tomcat
才实现动态请求,因此单个nginx不可以

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

vim nginx.conf
http {
upstream memcache {
        server localhost:11211;
        }

        location / {
            root   html;
            index  index.html index.htm;
        }
        location /memc {
                internal;
                memc_connect_timeout 100ms;
                memc_send_timeout 100ms;
                memc_read_timeout 100ms;
                set $memc_key $query_string;
                set $memc_exptime 300;
                memc_pass memcache;
        }

        location ~ \.jsp$ {
            proxy_pass   http://127.0.0.1:8080;
        }

        location ~ \.php$ {
            set $key $uri$args;
            srcache_fetch GET /memc $key;
            srcache_store PUT /memc $key;
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
           # fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
        }

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

172.25.12.1可以访问
172.25.12.1/index.jsp不可以(开启了nginx中的jsp模块,并且默认使用8080端口,这里其实访问的是tomcat下的index.jsp)
../sbin/nginx -s reload重新加载nginx服务
172.25.12.1/index.jsp可以了

在这里插入图片描述
在这里插入图片描述
现在还不可以动态访问index.jsp
从真机给虚拟机传一个图片scp test.jsp root@172.25.8.1:/root
在这里插入图片描述

vim test.jsp 查看

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

mv test.jsp /usr/local/tomcat/webapps/ROOT/将这张测试图片移动到tomcat的默认发布目录下

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

cd /usr/local/tomcat/webapps/ROOT/
ls
vim test.jsp

在这里插入图片描述

the time is:<%=new java.util.Date() %>

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

在浏览器里面输入172.25.12.1/test.jsp可以看见动态获取

刷新一次,时间就会变
在这里插入图片描述
在这里插入图片描述
以上就是nginx+jsp+tomcat完成客户端的动态请求


http://www.niftyadmin.cn/n/2928383.html

相关文章

lnmp——nginx+tomcat动态实现的tomcat服务器之间负载均衡

之前我们已经实现了客户端访问nginx服务器的时候&#xff0c;通过jsp动态获取tomcat服务器上面的资源 接下来实现nginx做反向代理tomcat做web服务器实现两个web&#xff08;tomcat1和tomcat2&#xff09;之间的负载均衡 并且客户端可以在浏览器动态注册信息&#xff0c;web1和w…

有道云笔记最新软件下载官方版

2019独角兽企业重金招聘Python工程师标准>>> 有道笔记是网易有道全新推出的云笔记软件&#xff0c;旨在以云存储技术帮助用户建立一个可以轻松访问、安全存储的云笔记空间&#xff0c;解决个人资料和信息跨平台跨地点的管理问题。有道云笔记目前支持安卓手机版&…

lnmp——nginx+sticky粘制模块实现tomcat负载均衡中的会话保持( nginx会话保持之sticky模块)

接下来再使用粘制位sticky来实现会话保持 1.什么是会话保持&#xff08;Session Persistence&#xff09;&#xff1f; 在一段时间内将同一客户的某一类型请求绑定至 同一台服务器上&#xff0c;使得这一时间段中该客户端所有该类型请求均由同一服务器进行处理 让一个用户的访…

LNMP架构之动态缓存(nginx +tomcat+memcache) 实现session共享和会话保持——memcache在tomcat中实现session交叉存放

在上一个实验当中&#xff0c;可以实现会话保持了 当其中一个tomcat服务器坏了&#xff0c;由于nginx负载均衡服务器在tomcat1和tomcat2之间实现了轮询 如果用户1在tomcat1服务器上存储的数据&#xff0c;但是当tomcat1这个服务器挂了 客户就会去访问tomcat2的服务器&#xff0…

利用HAProxy实现——负载均衡,添加日志,访问控制,动静分离,读写分离

haproxy类似nginx、apache 均是7层负载&#xff1a;动静分离&#xff0c;比较智能&#xff0c;可以实现高可用负载均衡支持虚拟主机 和nginx很像&#xff0c;但是haproxy&#xff08;不可以缓存&#xff09;和nginx&#xff08;可以缓存&#xff09;&#xff0c;二者都是httpd的…

Android NDK 开发之菜鸟

为什么80%的码农都做不了架构师&#xff1f;>>> 由于本人最近在帮一个朋友看NDK开发&#xff0c;期间遇到过一些不懂的问题&#xff0c;而在网上又没有找到什么好的解决方案&#xff1b;因此记录下来供参考。 首先呢&#xff0c;我使用的工具是Android Studio 一般…

HAproxy七层负载均衡介绍

1.什么是haproxy&#xff1f; HAProxy是一个使用C语言编写的自由及开放源代码软件&#xff0c;其提供高可用性、负载均衡&#xff0c;以及基于TCP和HTTP的应用程序代理 HAProxy特别适用于那些负载特大的web站点&#xff0c;这些站点通常又需要会话保持或七层处理 HAProxy运行在…

jqgrid静态数据获取及显示

2019独角兽企业重金招聘Python工程师标准>>> 引入必要文件 在页面中引入jquery.jqGrid.min.js&#xff0c;jquery.js及相关的样式文件 在页面里面定义 <table></table>用于展示数据的表格区&#xff0c;同时加上一个<div></div>做为分页拦…