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
下一篇 2018-03-19

相关推荐

  • 自建回收站

    linux 自添加回收站 (1)建立一个回收站目录 mkdir /tmp/trash_tmp (2) 编辑一个文件 vi /bin/trash mv $@ /tmp/trash_tmp :wq 保存退出 (3)添加别名 alias rm=/bin/trash (4)编辑/etc/bashrc 在最后一行添加alias rm=/bin/trash (5)给予目…

    Linux干货 2017-09-04
  • 配置LAMP实现WordPress

    配置LAMP实现WordPress 在同一台主机上实现LAMP(Linux + Apache + MariaDB + PHP) CentOS 7.3、Apache 2.4.6、MariaDB 5.5.52、PHP 5.4.16 1 安装LAMP 采用yum方式进行安装httpd、MariaDB、php、php-mysql,php-mysql用来进行php和M…

    2017-06-06
  • Python装饰器与面向切面编程

    新年好~ 那么,很久没有更新了,其实想想也没多少可以写的,因为Python的文档似乎很全面的说……能做的差不多只有翻译和整理了,英文过关的朋友不妨直接去doc.python.org这里查看相关资料 :) 转载请注明原作者和原文地址,多谢! 今天来讨论一下装饰器。装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理…

    Linux干货 2015-03-12
  • grub应用 (Blog 10)

    grub1.x 、grub2.x详解

    2017-11-27
  • 从增删改查角度学习linux基础命令

    从增删改查角度学习linux基础命令   本文从文件的增加、删除、修改、查询四个角度介绍linux的基本命令,介绍如下:   一.增 touch命令是最常用的创建文件的命令,它的常见参数如下: -a 或–time=atime或–time=access或–time=use  只更改存取时间。 -c 或&#…

    2017-07-15
  • Linux上bash的部分基础特性:

    命令补全: tab      shell程序在接收到用户执行命令的请求,分析完成后,最左侧的字符串会被当做命令 命令查找机制:     查找内部命令:     根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名 &n…

    Linux干货 2017-03-28