Linux上iPortal 配置80端口的http

作者: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端口访问成功,且“全局搜索功能”可以正常使用
在这里插入图片描述

相关推荐

  1. 在阿里云配置开放端口详细教程

    2023-12-23 18:20:04       44 阅读
  2. nginx 同一个端口支持httphttps配置

    2023-12-23 18:20:04       44 阅读
  3. shell_80.Linux函数递归

    2023-12-23 18:20:04       59 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-23 18:20:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-23 18:20:04       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-23 18:20:04       82 阅读
  4. Python语言-面向对象

    2023-12-23 18:20:04       91 阅读

热门阅读

  1. 虚拟机对象的创建

    2023-12-23 18:20:04       55 阅读
  2. 如何在服务器上部署springboot项目

    2023-12-23 18:20:04       62 阅读
  3. 跳格子3 (75%用例)C卷

    2023-12-23 18:20:04       53 阅读
  4. Flutter详解及案例代码

    2023-12-23 18:20:04       60 阅读
  5. okhttp系列-一些上限值

    2023-12-23 18:20:04       57 阅读
  6. 速盾网络:高防IP的好处

    2023-12-23 18:20:04       59 阅读
  7. 采用ODP.NET 批量进行数据同步

    2023-12-23 18:20:04       52 阅读
  8. 失效策略:缓存过期都有哪些策略?

    2023-12-23 18:20:04       51 阅读
  9. ansible的脚本:playbook剧本

    2023-12-23 18:20:04       46 阅读