首先,我先给大家画一张图,来理一下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完成客户端的动态请求