修改iServer默认访问路径并使用Nginx代理

本文介绍如何通过修改Tomcat配置实现iServer访问路径的自定义,并使用Nginx进行代理设置,确保代理前后路径一致。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:lly

背景

最近遇到客户需要将iServer访问地址代理成域名:端口/port1的形式,由于iServer这边的静态资源路径,都是依据context上下文文本,也就是webapps下面的路径来的,所以直接代理会出现port1丢失的情况,如下图:
在这里插入图片描述
所以我们需要做一些改动,来改变iServer的默认访问路径

一、修改tomcat配置文件

1.在不改动iServer目录结构的情况下,我们想要去修改访问路径,我们就需要去配置iServer/conf/server.xml文件,在Host节点下新增Context节点

<Context path="/port1/iserver" docBase="/opt/supermap-iserver-10.1.3a-linux64-deploy/webapps/iserver"></Context>

Context元素的属性
path:指定访问该Web应用的URL入口
docBase:指定Web应用的文件路径,可以给定绝对路径,也可以给定相对于的appBase属性的相对路径,这里我们给绝对路径

2.这个时候我们去启动iServer查看修改结果,发现出现了启动两次的情况
在这里插入图片描述

排查原因,发现是tomcat启动时会自动去做一次部署,因此我们继续修改server.xml文件,将autoDeploy和deployOnStartup参数都设置为false

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="false" deployOnStartup="false" >

Host元素的属性:
unpackWARs:在启用此 webapps 时是否对 WAR 格式的归档文件先进行展开
autoDeploy:在 Tomcat 处于运行状态时放置于 appBase 目录中的应用程序文件是否自动进行 部署
deployOnStartup:在 Tomcat 启动时自动部署应用

最终配置如下:

3.重启后访问iServer,发现域名已经按照预期修改

在这里插入图片描述

二、Nginx配置

1.设置location为/port1/iserver,并映射到iServer的默认访问地址,同时设置proxy_set_header,如下:

server {

        listen      8888;
        server_name   www.test.com:8888;  
		location /port1/iserver{
		  proxy_pass   http://172.16.15.94:8090/port1/iserver;
		  proxy_set_header ProxyHost $host:8888;
		}
}

2.访问代理后的地址,我们发现单个请求地址和代理后的一致
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值