Linux上iPortal 配置80端口的http

2023-12-22 10:45:11

作者:yx



前言

大家知道Linux上边启动Elasticsearch(以下简称:ES)需要普通用户,不能是root用户,因此在Linux上边启动iPortal时需要以非root用户去启动,但是有的项目又需要以80端口去启动,由于Linux普通用户,不能使用小于1024的端口,因此如果在Tomcat的server.xml里面配置端口为80的话,HTTP服务器启动会失败。那对于这种情况该如何处理呢,一起来看看吧!


一、配置使用外置ES

注:如果您自己搭建了 ES服务器,可以直接用搭建好的。这里以iPortal自带的es为例

1、关闭启用 iPortal 内置的 ES

修改 %SuperMap iPortal_HOME%/webapps/iportal/WEB-INF 目录下的 iportal.xml 配置文件,具体配置项如下:

<IportalConfig>
  ...
  <modulesConfig>
    <searchModuleConfig class="com.supermap.server.config.BuildinSearchConfig">
      <enable>true</enable> 
      <reindexAllResources>true</reindexAllResources>
      <startElasticSearch>false</startElasticSearch>
      <port>8192</port>
    </searchModuleConfig>
  </modulesConfig>
  ...
</IportalConfig>
  • <enable>:是否启用搜索服务。默认值: true。注意:此参数必须设置为 true。
  • <reindexAllResources>:是否重新索引已有 iPortal 资源。重建索引后,此配置会自动设置为 false。
  • <startElasticSearch>:是否启用 iPortal 内置的 ES。默认值:true。如果您希望使用自己搭建的 ES 服务器,需要将该值设置为 false。
  • <port>:搜索服务的端口。默认值:8192。

其中需要修改 <startElasticSearch>参数为false。配置完成后,需重启 iPortal 生效。

2、修改80端口

修改 Tomcat 配置文件%SuperMap iPortal_HOME%/bin/conf/server.xml,如下:

    <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8453"
               executor="tomcatThreadPool"
               enableLookups="false" 
               URIEncoding="utf-8"
  			   compression="on"
   			   compressionMinSize="2048"
   			   compressableMimeType="text/html,text/xml,text/plain,text/javascript,application/xml,application/json,application/rjson"
               />
  • port:启动服务端口,默认为8190,这里修改为80

3、启动外置ES

由于iPortal启动时会去检测ES是否可用,因此需要先将ES启动好,再去启动iPortal。
切记需要以非root去执行%SuperMap iPortal_HOME%/bin 目录下./startes.sh脚本,出现如下图字样代表启动成功:
在这里插入图片描述

4、启动iPortal

ES启动好之后,最后一步就是启动iPortal,这个时候再切换为root用户启动iPortal即可。出现如下图字样代表启动成功:
在这里插入图片描述

5、结果验证

可以看到通过80端口访问成功,且“全局搜索功能”可以正常使用
在这里插入图片描述

二、更改 Linux 系统

修改 Linux 系统配置,是的非root用户可以启动80端口

1. 安装 Authbind

在 Linux 系统上我们可以下载并安装 Authbind 软件包:

$ sudo apt-get install authbind    适用于Debian/Ubuntu
$ sudo yum install authbind        适用于CentOS

如果在安装Authbind过程中出现以下报错:
在这里插入图片描述
您可以在联网情况下直接下载对应rpm包并进行安装:

wget https://s3.amazonaws.com/aaronsilber/public/authbind-2.1.1-0.1.x86_64.rpm   		#下载文件
rpm -Uvh https://s3.amazonaws.com/aaronsilber/public/authbind-2.1.1-0.1.x86_64.rpm  	#安装

在这里插入图片描述
在这里插入图片描述

2. 启用端口的读取和执行权限

接下来需要执行几条命令来启用端口的读取和执行权限。

$ sudo touch /etc/authbind/byport/80
$ sudo chmod 500 /etc/authbind/byport/80
$ sudo chown <user> /etc/authbind/byport/80    #需要替换命令中的 <user> 为实际运行 Tomcat 的用户名称。

3. 在 Apache Tomcat 上启用 Authbind

修改 Tomcat 配置文件,以便在 Tomcat 启动时使用 Authbind。打开 【SuperMap iPortal_HOME】/bin/startup.sh 文件,替换下面一行:

exec "$PRGDIR"/"$EXECUTABLE" start "$@"

替换为

exec authbind --deep "$PRGDIR"/"$EXECUTABLE" start "$@"

在这里插入图片描述

4. 重启iPortal

最后重新启动iPortal即可

5. 结果验证

可以看到通过80端口访问成功,且“全局搜索功能”可以正常使用
在这里插入图片描述

文章来源:https://blog.csdn.net/supermapsupport/article/details/135145778
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。