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

相关推荐

  • 搜索引擎的检索模型-查询与文档的相关度计算

    1. 检索模型概述       搜索结果排序时搜索引擎最核心的部分,很大程度度上决定了搜索引擎的质量好坏及用户满意度。实际搜索结果排序的因子有很多,但最主要的两个因素是用户查询和网页内容的相关度,以及网页链接情况。这里我们主要总结网页内容和用户查询相关的内容。     &nbsp…

    2015-12-10
  • Linux文件系统简介

    文件系统是Linux的十分基础的知识,同时也是学习Linux必不可少的知识。本文将简单的介绍一下Linux的文件系统,主要包括FHS文件层级结构、Linux的文件类型及对应的颜色标识、man帮助手册页以及命令编辑特性的快捷键的介绍。这仅仅是属于自己的一个总结,以后会对深入学习Linux有一定的帮助吧。 如有不对之处还请帮忙指出。 FHS文件层级结构 FHS(…

    Linux干货 2016-10-19
  • Homework Week-8 网络及脚本编程

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 设备 功能 使用场景 网桥 用于连接不同网段,将相似的网络连接起来,隔离信息。 连接不同部门间的局域网;连接地理位置分散并且相距较远的局域网,可以增加工作的物理距离;采用由网桥连接的多个局域网调节负载;网桥可以设置在局域网的关键部位,防止单点失常而破坏整个系统等。 集线器 对接收…

    Linux干货 2016-10-09
  • 计算机网络知识,脚本编程_第八周练习

    Q1:请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥:网桥(Bridge)是早期的两端口二层网络设备,用来连接不同网段。网桥的两个端口分别有一条独立的交换信道,不是共享一条背板总线,可隔离冲突域。网桥比集线器(Hub)性能更好,集线器上各端口都是共享同一条背板总线的。后来,网桥被具有更多端口、同时也可隔离冲突域的交换机(Sw…

    Linux干货 2016-12-25
  • 文本处理工具(一)

    文本处理工具 查看工具 cat;tac;rev;more cat 连接文件,并打印到标准输出上。 注意:当文件比较大的时候,文本在屏幕上一闪而过,导致无法看清内容,所以对于较大的文件建议结合着more,less等命令结合来用。 使用方法: -E: 显示行结束符$ -n: 对显示出的每一行进行编号 空行也加行号 -A:显示所有控制符 相当于-ETV -b:非空…

    2017-06-01
  • LNAMP 跨网段实现

    感谢Kason老师给我了知识!

    2017-12-31