作者: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
配置文件,具体配置项如下:
<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端口访问成功,且“全局搜索功能”可以正常使用