作者:yx


文章目录

  • 前言
  • 一、配置使用外置ES
    • 1、关闭启用 iPortal 内置的 ES
    • 2、修改80端口
    • 3、启动外置ES
    • 4、启动iPortal
    • 5、结果验证
  • 二、更改 Linux 系统
    • 1. 安装 Authbind
    • 2. 启用端口的读取和执行权限
    • 3. 在 Apache Tomcat 上启用 Authbind
    • 4. 重启iPortal
    • 5. 结果验证

前言

大家知道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 配置文件,具体配置项如下:

...true truefalse8192...
  • :是否启用搜索服务。默认值: true。注意:此参数必须设置为 true。
  • :是否重新索引已有 iPortal 资源。重建索引后,此配置会自动设置为 false。
  • :是否启用 iPortal 内置的 ES。默认值:true。如果您希望使用自己搭建的 ES 服务器,需要将该值设置为 false。
  • :搜索服务的端口。默认值:8192。

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

2、修改80端口

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

  • 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  /etc/authbind/byport/80#需要替换命令中的  为实际运行 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端口访问成功,且“全局搜索功能”可以正常使用