tomcat基础-如何给Tomcat前端加反向代理服务器

Tomcat可以做为反向代理服务器的组件有很多,例如使用nginx,如果使用nginx,Tomcat就只能使用http连接器,另外一种是apache。如果是使用httpd,Tomcat两种连接器都能发挥作用,例如可以使用http连接器,也可以使用ajp连接器,

在Tomcat前端加反向代理服务器,在同一台主机上构建nginx

[root@tomcat ~]# yum install nginx

Installed:

nginx.x86_64 1:1.12.2-1.el7

 

 

配置nginx能够把请求反代给Tomcat,两种方式

  1. 把所有请求都反代过去,无论是静态还是动态,这不是一种理想的方式
  2. 可以把jsp

java所写的代码,一般有两种资源后缀,.do,另外一种是.jsp,假如运行在Tomcat之上,因此去匹配请求的URL后缀,而后,只把do 和 jsp 结尾的反代给Tomcat,而静态的,都由自己进行处理

 

假设动静资源都放在一起了,先说一个主机,动静资源都在一起,都在/usr/share/tomcat/webapps/目录下,nginx的根路径也应该指向/usr/share/tomcat/webapps/,假如说主站是在/root目录下,在nginx上还需要专门加一个location,或者是把根直接指向/root目录,也可以

 

修改nginx配置文件

[root@tomcat /etc/nginx]# vim nginx.conf

server {

listen       80 default_server;

listen       [::]:80 default_server;

server_name  _;

root        /usr/share/tomcat/webapps/ROOT/;

 

# Load configuration files for the default server block.

include /etc/nginx/default.d/*.conf;

 

location / {

}

 

 location ~* \.(jsp|do)$ {

                proxy_pass http://127.0.0.1:8080;

        }

 

因为nginx自己不会去找ROOT,所以需要写上

 

127.0.0.1:8080; 使用localhost上的虚拟主机进行请求响应,或者使用本机的IP地址也是一样的,使用本机的IP,也是localhost进行响应的,除非是使用server1才会由后端server1上的虚拟主机进行响应。如果地址写的是server1:8080,那么nginx所在的机器效可以解析server1才可以,否则无法完成代理

 

 

启动服务

[root@tomcat /etc/nginx]# systemctl restart nginx

 

[root@tomcat /etc/nginx]# ss -ntl

State      Recv-Q Send-Q    Local Address:Port                   Peer Address:Port

LISTEN     0      128                  :::80                               :::*

LISTEN     0      100                  :::8080                             :::*

LISTEN     0      100                  :::8009                             :::*

 

访问测试

[root@server2 ~]# curl 192.168.111.101

<html>

<head><title>403 Forbidden</title></head>

 

注意:对方的默认资源页面是index.jsp

在nginx上配置的时候,没表明.jsp的文件可以当做默认主页面,所以就把index.html请求到后端去了,后端主机就没有

修改配置文件进行适配

[root@tomcat ~]# vim /etc/nginx/nginx.conf

server {

listen       80 default_server;

listen       [::]:80 default_server;

server_name  _;

root        /usr/share/tomcat/webapps/ROOT/;

index   index.jsp index.html;

 

# Load configuration files for the default server block.

include /etc/nginx/default.d/*.conf;

 

location / {

}

 

location ~* \.(jsp|do)$ {

proxy_pass http://127.0.0.1:8080;

}

 

重新加载配置文件

[root@tomcat ~]# nginx -s reload

 

访问测试

[root@server2 ~]# curl 192.168.111.101 -I

HTTP/1.1 200 OK

Server: nginx/1.12.2

 

 

点击主页面上的Manager按钮无法跳转过去,因为nginx去找ROOT目录下的host-manager/html文件去了

 

location需要单独定义,和每个应用程序,在nginx上直接进行代理而且有多个应用,每一个应用都需要单独定义一个location,而且对于manager资源,页面文件还是在html目录下,所以location要定义好,指到manager还不够,还需要指定heml,因为默认资源时静态的,叫做index.html,而且是放在manager目录中的。还需要额外添加location。好在,像这种manager,一般也不应该在前端服务网关代理

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/92691

(2)
无言胜千言无言胜千言
上一篇 2018-03-18 22:28
下一篇 2018-03-19 10:47

相关推荐

  • Week9’s homework

    Week9's homework 1、写一个脚本(1)判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin)(2)分别统计两类用户的个数;通过字符串比较来实现。 #!/bin/bash # for i in $(cat /etc/passwd |…

    Linux干货 2016-12-24
  • IO,用户与组管理,文件,目录权限管理

           文件统配匹配模式:元字符文件名通配符*匹配任意长度的任意字符[root@localhost ~]# ls /root/D*/root/Desktop  /root/Documents  /root/Downloads ?匹配单个任意字符[root@localhost ~]# …

    Linux干货 2016-08-05
  • Linux命令中特殊符号的用法

    Linux命令中特殊符号的用法 在马哥教育学习了将近一周的Linux运维,由最初对Linux系统的一无所知,到了解了Linux的发展历程,学习了一些基本命令,惊叹于Linux的强大功能。下面根据我学到的,介绍一下关于Linux命令中特殊符号的用法。 $的用法 1.$()或’’引用命令执行的结果 例如:如果我们想要创建一个以当前日期命名的目录,可以执行 #mk…

    2017-07-15
  • 进程管理之工作管理详解(job control)

    进程管理之工作管理详解(job control) 1 什么是工作管理(job control)   我们知道linux是多任务多终端工作的操作系统。我们可以在多个终端进行工作,也可以在一个终端进行多个任务工作。那在一个终端同时进行多个工作任务,就称为工作管理。比如这种情况,在一个终端,你想要复制文件,同时你还想压缩打包文件,甚至你还想编辑文件,这个…

    Linux干货 2017-05-14
  • date初步认识

    linux命令date的初步认识

    Linux干货 2017-11-11
  • 马哥教育网络班21期+第一周课程练习

    1、描述计算机的组成及其功能。 计算机由五大组件组成包括:计算器,控制器,存储,输入设备,输出设备。 运算器:做运算,且只能做二进制运算,包括算术运算和逻辑运算,如加减乘除,移位,取模。运算器的核心是加法器。 控制器:控制整个计算机部件之间协调。比如做计算,运算器先从存储器取数,运算器作运算,再回存存储器。这整个过程都由控制器做协调。  &nbsp…

    Linux干货 2016-07-12