端口与网络配置
概述
本章节介绍 Fess 的网络相关配置。 包括端口号变更、代理服务器配置、HTTP通信配置等网络连接相关设置。
使用端口配置
默认端口
Fess 默认使用以下端口。
| 服务 | 端口号 |
|---|---|
| Fess Web 应用程序 | 8080 |
| OpenSearch (HTTP) | 9201 |
| OpenSearch (Transport) | 9301 |
Fess Web 应用程序端口变更
Linux 环境配置
在 Linux 环境中变更端口号时,请编辑 bin/fess.in.sh 文件。
FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Dfess.port=8080"
例如,要使用端口 80:
FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Dfess.port=80"
Note
使用 1024 以下的端口号时,需要 root 权限或适当的权限设置(CAP_NET_BIND_SERVICE)。
环境变量配置
也可以通过环境变量指定端口号。
export FESS_PORT=8080
RPM/DEB 软件包配置
RPM 软件包请编辑 /etc/sysconfig/fess,DEB 软件包请编辑 /etc/default/fess。
FESS_PORT=8080
Windows 环境配置
在 Windows 环境中,请编辑 bin\fess.in.bat 文件。
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.port=8080
注册为 Windows 服务时
在 Windows 环境中作为服务注册使用时,请同时变更 bin\service.bat 中的端口配置。 详情请参阅 注册为 Windows 服务。
上下文路径配置
要在子目录中发布 Fess,可以配置上下文路径。
FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Dfess.context.path=/search"
此配置将使您可以通过 http://localhost:8080/search/ 访问。
Warning
变更上下文路径后,还需要正确配置静态文件的路径。
代理服务器配置
概述
当从内网爬取外部网站或访问外部 API 时, 通信可能会被防火墙阻止。 在这种环境中,需要配置通过代理服务器进行通信。
爬虫代理服务器配置
基本配置
在管理页面的爬虫配置中,在配置参数中指定如下内容。
client.proxyHost=proxy.example.com
client.proxyPort=8080
需要认证的代理服务器配置
如果代理服务器需要认证,请添加如下配置。
client.proxyHost=proxy.example.com
client.proxyPort=8080
client.proxyUsername=proxyuser
client.proxyPassword=proxypass
从代理服务器排除特定主机
当需要直连特定主机(如内网服务器)而不通过代理服务器时:
client.proxyHost=proxy.example.com
client.proxyPort=8080
client.nonProxyHosts=localhost|*.local|192.168.*
系统全局 HTTP 代理配置
如果 Fess 应用程序整体都使用 HTTP 代理,请在 fess_config.properties 中配置。
http.proxy.host=proxy.example.com
http.proxy.port=8080
http.proxy.username=proxyuser
http.proxy.password=proxypass
Warning
密码将以未加密形式保存。请设置适当的文件权限。
HTTP 通信配置
文件上传限制
可以限制从管理页面上传文件的大小。
| 配置项 | 说明 |
|---|---|
http.fileupload.max.size | 最大文件上传大小(默认: 262144000字节 = 250MB) |
http.fileupload.threshold.size | 内存保留阈值大小(默认: 262144字节 = 256KB) |
http.fileupload.max.file.count | 一次可上传的文件数(默认: 10) |
fess_config.properties 配置示例:
http.fileupload.max.size=524288000
http.fileupload.threshold.size=524288
http.fileupload.max.file.count=20
连接超时配置
可以配置到 OpenSearch 的连接超时时间。
| 配置项 | 说明 |
|---|---|
search_engine.http.url | OpenSearch的URL(默认: http://localhost:9201) |
search_engine.heartbeat_interval | 健康检查间隔(毫秒,默认: 10000) |
OpenSearch 连接目标变更
连接到外部 OpenSearch 集群时:
search_engine.http.url=http://opensearch-cluster.example.com:9200
连接多个节点
连接多个 OpenSearch 节点时,请用逗号分隔指定。
search_engine.http.url=http://node1:9200,http://node2:9200,http://node3:9200
SSL/TLS 连接配置
通过 HTTPS 连接到 OpenSearch 时:
search_engine.http.url=https://opensearch.example.com:9200
search_engine.http.ssl.certificate_authorities=/path/to/ca.crt
search_engine.username=admin
search_engine.password=admin_password
Note
进行证书验证时,请在 certificate_authorities 中指定 CA 证书的路径。
虚拟主机配置
概述
可以根据访问 Fess 的主机名显示不同的搜索结果。 详情请参阅 虚拟主机。
基本配置
在 fess_config.properties 中配置虚拟主机头。
virtual.host.headers=X-Forwarded-Host,Host
反向代理集成
Nginx 配置示例
server {
listen 80;
server_name search.example.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
}
}
Apache 配置示例
<VirtualHost *:80>
ServerName search.example.com
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
RequestHeader set X-Forwarded-Proto "http"
RequestHeader set X-Forwarded-Host "search.example.com"
</VirtualHost>
SSL/TLS 终止
在反向代理上进行 SSL/TLS 终止的配置示例(Nginx):
server {
listen 443 ssl http2;
server_name search.example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Host $host;
}
}
防火墙配置
开放必要端口
要使 Fess 可从外部访问,请开放以下端口。
iptables 配置示例:
# Fess Web 应用程序
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
# 通过 HTTPS 访问时(经由反向代理)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
firewalld 配置示例:
# Fess Web 应用程序
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
安全组配置(云环境)
在 AWS、GCP、Azure 等云环境中,请在安全组或网络 ACL 中 开放适当的端口。
推荐配置: - 入站: 80/443端口(通过 HTTP 反向代理) - 8080端口仅限从内部访问 - OpenSearch 的 9201/9301 端口仅限从内部访问
故障排除
变更端口后无法访问
请确认是否已重启 Fess。
请确认防火墙是否已开放相应端口。
请在日志文件(
fess.log)中确认错误信息。
无法通过代理服务器爬取
请确认代理服务器的主机名和端口是否正确。
如代理服务器需要认证,请配置用户名和密码。
请在代理服务器日志中确认是否记录了连接尝试。
请确认
nonProxyHosts的配置是否正确。
无法连接到 OpenSearch
请确认 OpenSearch 是否已启动。
请确认
search_engine.http.url的配置是否正确。请确认网络连接:
curl http://localhost:9201请在 OpenSearch 日志中确认错误信息。
通过反向代理访问时无法正常工作
请确认
X-Forwarded-Host头是否配置正确。请确认
X-Forwarded-Proto头是否配置正确。请确认上下文路径是否配置正确。
请在反向代理日志中确认错误信息。
参考信息
内存配置 - 内存配置
注册为 Windows 服务 - Windows 服务配置
虚拟主机 - 虚拟主机配置
爬虫高级配置 - 爬虫高级配置