摸鱼日记6 配置tomcat tomcat与nginx的整合

前几天终于肝完了jQuery,和朋友交流了一下才发现,自己的服务器只有前端没有后端,前一阵看的Javaspring完全没有运行环境,没办法,补一下后端的配置。

tomcat配置

昨晚研究了半天,恶补了一下大三的网路层次,发现只配置了一个nginx是不够的,nginx只能处理静态的元素,如果是jsp这类动态的文件,就没有用武之处,而springMVC仍然需要使用jsp处理动态请求,所以这种问题需要借助tomcat,利用tomcat来处理动态的处理,这就引出了后面的动静分离。

配置tomcat需要配置java环境,真的是吃大亏,当初大二学java的时候环境变量找舍友配的,自己完全没搞明白,这会又要上网查教程,查教程没注意发布时间,第一次找了个12年的教程,老掉渣,装了一次没装上,后来换了一个教程才搞定。

服务器上配置Java和在自己电脑上配置是差不多的,首先去官网下载好jdk,看好自己服务器的系统、位数,选择合适的jdk版本,个人选择的是下面这个:
在这里插入图片描述
将这个文件上传到自己的服务器上,放在/usr/local/java路径下,之后用指令解压:

tar -zxvf jdk-8u171-linux-x64.tar.gz

这里解压有时候会出现没权限的问题,这时候可以用调整权限的指令修改一下。解压完成后就可以进行环境变量的配置,需要编辑profile文件,这个文件在etc路径下,可以直接使用指令,也可以利用xftp将文件用记事本打开。在文件的最后添加上这样三句代码:

export JAVA_HOME=/usr/local/java/jdk包的名字
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 

之后退出保存,需要再让profile文件生效一下,使用下面的指令:

source /etc/profile

至此java环境就算是配置完成了,可以使用javac来检验一下,如果出现了一大堆说明配置成功了,也可以使用下面的指令查看java版本,查询成功说明java配置成功。

java -version

现在弄好了java,再安装tomcat,也是去官网下载,我下载的是这个版本:
在这里插入图片描述
下载好之后同样用xftp传到服务器上,放在/usr/local/tomcat路径下,同样使用指令解压后,修改profile文件,再文件最后加上下面三句代码,具体要根据你放的路径,路径错了就会失败:

export CATALINA_BASE=/usr/local/tomcat/apache-tomcat-9.0.43
export CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.43
export PATH=$CATALINA_HOME/bin:$PATH

现在配置好了环境变量,直接用指令启动tomcat即可,使用指令./startup.sh 启动tomcat服务,之后可以利用curl8080端口来检验是否成功启动,如果成功会返回一大串html代码。

tomcat与nginx的整合

所谓整合,主要还是因为nginx只能访问静态资源,而tomcat支持动静但是静态资源访问开销太大,所以我们整合的主要思路还是让nginx去访问静态资源,而让tomcat去处理动态资源,这样的方法就是整合,整合后就实现了动静分离。

首先去阿里云的控制台,把安全组里面8080端口给打开,这样才可以反向代理。
基本思路是利用nginx的配置文件,如果检测到访问的是jsp文件,那么就利用反向代理,发送给tomcat,如果是静态的文件,就直接自己打开。
反向代理相当于一个中介,我们和nginx的通信是我们发nginx收,而在nginx和tomcat之间的通信,nginx起的就是我们的作用,通过nginx作为代理向tomcat通信。而通信的端口就是之前打开的8080。
整个整合的过程只需要修改nginx.conf文件就够了。之前我们配置过https,已经让访问80端口的全部重定向到了443接口,现在我们需要的是在443接口上分流,让对jsp文件的访问转向8080端口到达tomcat,而其它文件保持不变。
当初配置https的时候,我们是利用location来判断的,这里增加这样一段代码:

 location ~ .*.jsp$ {
    
    
            proxy_pass http://8.131.103.249:8080;
            proxy_set_header Host $host;
        }

这段代码的意思是对于访问地址是jsp结尾的地址,冲定向到http://8.131.103.249:8080,这个proxy_pass就是重定向的位置,这里我们将其重定向到tomcat端口,就可以实现动态文件交给tomcat来访问的操作。

现在还需要进行一些修改,我们只是配置完成了动静分离,静的文件我们已经能访问了,要将动态的jsp文件放在哪里也是个问题。当初大三上企业级开发的时候老师并没有讲tomcat的原理,使用eclipse编写的代码运行在tomcat上,tomcat会将文件放在自己的路径下面,所以我们也要将编写的示例jsp文件放在tomcat路径下面,即下图位置中的webapps文件夹内:
在这里插入图片描述
扔进去一个简简单单的示例jsp就够了,然后在原本的网页里面留一个访问这个jsp的超链接,这样点击这个超链接,我们就通过tomcat访问到了jsp文件:
在这里插入图片描述
再次梳理一遍整个的流程,对80端口的转向到了443端口,nginx根据访问文件的类型,如果是动态的jsp就通过8080端口反向代理给tomcat,tomcat访问自己webapps文件夹下的相应位置从而打开jsp文件,如果是静态的文件,就直接交给nginx打开自己路径下面的静态文件。至此我们就可以利用jsp来编写后端的方法了。

猜你喜欢

转载自blog.csdn.net/weixin_43849505/article/details/113987355
今日推荐