Port- und Netzwerkkonfiguration

Übersicht

Dieser Abschnitt beschreibt die netzwerkbezogenen Konfigurationen von Fess. Er behandelt Einstellungen für Netzwerkverbindungen wie Änderungen der Portnummer, Proxy-Konfiguration und HTTP-Kommunikationseinstellungen.

Konfiguration der verwendeten Ports

Standard-Ports

Fess verwendet standardmäßig die folgenden Ports.

Dienst Portnummer
Fess-Webanwendung 8080
OpenSearch (HTTP) 9201
OpenSearch (Transport) 9301

Ändern des Ports der Fess-Webanwendung

Konfiguration in Linux-Umgebungen

Um die Portnummer in Linux-Umgebungen zu ändern, bearbeiten Sie bin/fess.in.sh.

FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Dfess.port=8080"

Beispiel für die Verwendung von Port 80:

FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Dfess.port=80"

Bemerkung

Für die Verwendung von Portnummern unter 1024 sind Root-Rechte oder entsprechende Berechtigungen (CAP_NET_BIND_SERVICE) erforderlich.

Konfiguration über Umgebungsvariablen

Sie können die Portnummer auch über eine Umgebungsvariable angeben.

export FESS_PORT=8080

Warnung

Die Umgebungsvariable FESS_PORT ist nur unter Linux verfügbar. Unter Windows bearbeiten Sie -Dfess.port direkt in bin\fess.in.bat.

Bei RPM/DEB-Paketen

Bei RPM-Paketen bearbeiten Sie /etc/sysconfig/fess, bei DEB-Paketen /etc/default/fess.

FESS_PORT=8080

Konfiguration in Windows-Umgebungen

In Windows-Umgebungen bearbeiten Sie bin\fess.in.bat.

set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.port=8080

Bei Registrierung als Windows-Dienst

Wenn Sie Fess in einer Windows-Umgebung als Dienst registrieren und verwenden möchten, ändern Sie bitte auch die Portkonfiguration in bin\service.bat. Weitere Informationen finden Sie unter Registrierung als Windows-Dienst.

Konfiguration des Kontextpfads

Wenn Sie Fess in einem Unterverzeichnis veröffentlichen möchten, können Sie einen Kontextpfad konfigurieren.

Linux:

export FESS_CONTEXT_PATH=/search

Windows:

Bearbeiten Sie bin\fess.in.bat:

set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.context.path=/search

Mit dieser Einstellung wird der Zugriff unter http://localhost:8080/search/ möglich.

Warnung

Die Umgebungsvariable FESS_CONTEXT_PATH ist nur unter Linux verfügbar. Unter Windows bearbeiten Sie -Dfess.context.path direkt in bin\fess.in.bat.

Warnung

Wenn Sie den Kontextpfad ändern, müssen Sie auch die Pfade für statische Dateien entsprechend konfigurieren.

Proxy-Konfiguration

Übersicht

Beim Crawlen externer Websites aus einem Intranet oder beim Zugriff auf externe APIs kann die Kommunikation durch eine Firewall blockiert werden. In solchen Umgebungen ist eine Konfiguration für die Kommunikation über einen Proxy-Server erforderlich.

Proxy-Konfiguration für den Crawler

Grundkonfiguration

Geben Sie in den Crawl-Einstellungen in der Verwaltungsoberfläche die folgenden Konfigurationsparameter an.

client.proxyHost=proxy.example.com
client.proxyPort=8080

Konfiguration eines Proxys mit Authentifizierung

Wenn der Proxy-Server eine Authentifizierung erfordert, fügen Sie Folgendes hinzu.

client.proxyHost=proxy.example.com
client.proxyPort=8080
client.proxyUsername=proxyuser
client.proxyPassword=proxypass

Ausschluss bestimmter Hosts vom Proxy

Die Crawler-Proxy-Einstellungen unterstützen nonProxyHosts nicht. Um bestimmte Hosts vom Proxy auszuschließen, verwenden Sie die Umgebungsvariable FESS_NON_PROXY_HOSTS. Diese Einstellung wird in die Java-Systemeigenschaft http.nonProxyHosts umgewandelt und gilt für die gesamte HTTP-Kommunikation von Fess.

FESS_NON_PROXY_HOSTS=localhost|*.local|192.168.*

Standard-Proxy-Konfiguration für den Crawler

Um einen Standard-Proxy festzulegen, wenn client.proxyHost nicht in den einzelnen Crawl-Konfigurationen angegeben ist, konfigurieren Sie dies in fess_config.properties. Diese Einstellung gilt für den Standard-Proxy des Crawlers sowie für die HTTP-Kommunikation der LLM-Integration und für Plugin-Downloads. Sie gilt jedoch nicht für die Kommunikation einiger Java-Bibliotheken wie der SSO-Authentifizierung. Um einen Proxy für die gesamte Fess-Anwendung (einschließlich SSO-Authentifizierung) anzuwenden, verwenden Sie die weiter unten beschriebenen Umgebungsvariablen (FESS_PROXY_HOST usw.).

http.proxy.host=proxy.example.com
http.proxy.port=8080
http.proxy.username=proxyuser
http.proxy.password=proxypass

Warnung

Passwörter werden unverschlüsselt gespeichert. Setzen Sie entsprechende Dateiberechtigungen.

Bemerkung

Die Einstellungen http.proxy.* gelten nicht für die SSO-Authentifizierung usw. Um einen Proxy für die gesamte Fess-Anwendung einschließlich SSO-Authentifizierung (JVM-weite HTTP-Kommunikation) zu verwenden, setzen Sie die Umgebungsvariablen FESS_PROXY_HOST und FESS_PROXY_PORT. Einzelheiten siehe „Proxy-Konfiguration über Umgebungsvariablen“ weiter unten.

Proxy-Konfiguration über Umgebungsvariablen

Wenn Java-Bibliotheken wie SSO-Authentifizierung einen Proxy verwenden müssen, müssen Sie ihn über Umgebungsvariablen konfigurieren. Diese Umgebungsvariablen werden in Java-Systemeigenschaften (http.proxyHost, https.proxyHost usw.) umgewandelt.

FESS_PROXY_HOST=proxy.example.com
FESS_PROXY_PORT=8080
FESS_NON_PROXY_HOSTS=localhost|*.local|192.168.*

Für RPM-Pakete konfigurieren Sie in /etc/sysconfig/fess. Für DEB-Pakete konfigurieren Sie in /etc/default/fess.

Bemerkung

Die Einstellungen http.proxy.* in fess_config.properties werden für den Standard-Proxy des Crawlers sowie für die LLM-Integration und Plugin-Downloads verwendet. Um einen Proxy für die gesamte Fess-Anwendung einschließlich SSO-Authentifizierung (JVM-weite HTTP-Kommunikation) zu verwenden, setzen Sie die oben genannten Umgebungsvariablen.

HTTP-Kommunikationseinstellungen

Beschränkung von Datei-Uploads

Sie können die Größe von Datei-Uploads über die Verwaltungsoberfläche beschränken.

Konfigurationselement Beschreibung
http.fileupload.max.size Maximale Datei-Upload-Größe (Standard: 262144000 Bytes = 250 MB)
http.fileupload.threshold.size Schwellenwertgröße für die Speicherung im Arbeitsspeicher (Standard: 262144 Bytes = 256 KB)
http.fileupload.max.file.count Anzahl der Dateien, die gleichzeitig hochgeladen werden können (Standard: 10)

Konfigurationsbeispiel in fess_config.properties:

http.fileupload.max.size=524288000
http.fileupload.threshold.size=524288
http.fileupload.max.file.count=20

OpenSearch-Verbindungseinstellungen

Sie können die OpenSearch-Verbindungs-URL und das Intervall der Integritätsprüfung (Heartbeat) konfigurieren.

Konfigurationselement Beschreibung
search_engine.http.url OpenSearch-URL (Standard: http://localhost:9201)
search_engine.heartbeat_interval Intervall für Gesundheitsprüfungen (Millisekunden, Standard: 10000)

Ändern der OpenSearch-Verbindung

Für die Verbindung zu einem externen OpenSearch-Cluster:

search_engine.http.url=http://opensearch-cluster.example.com:9200

Verbindung zu mehreren Knoten

Um eine Verbindung zu mehreren OpenSearch-Knoten herzustellen, geben Sie diese durch Kommas getrennt an.

search_engine.http.url=http://node1:9200,http://node2:9200,http://node3:9200

Konfiguration von SSL/TLS-Verbindungen

Für HTTPS-Verbindungen zu 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

Bemerkung

Für die Zertifikatsvalidierung geben Sie den Pfad zum CA-Zertifikat unter certificate_authorities an.

Konfiguration virtueller Hosts

Übersicht

Fess kann Suchergebnisse basierend auf dem Hostnamen, über den darauf zugegriffen wird, unterschiedlich darstellen. Weitere Informationen finden Sie unter Virtueller Host.

Grundkonfiguration

Konfigurieren Sie virtuelle Hosts über die Verwaltungsoberfläche „System > Allgemein“ (virtual.host.headers). Geben Sie pro Zeile einen virtuellen Host im Format Host:Hostname[:Port]=VirtualHostName an. Der Standardwert ist leer (nicht gesetzt), und die Funktion für virtuelle Hosts ist deaktiviert.

Host:search1.example.com=site1
Host:search2.example.com=site2

Bemerkung

Der Wert von virtual.host.headers ist KEINE Liste von Header-Namen wie X-Forwarded-Host,Host. Jede Zeile beschreibt eine Zuordnung in der Form Header-Name:Header-Wert=VirtualHostName. Einzelheiten zum Format und zu den Einschränkungen finden Sie unter Virtueller Host.

Integration mit Reverse-Proxys

Konfigurationsbeispiel für 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;
    }
}

Konfigurationsbeispiel für 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-Terminierung

Konfigurationsbeispiel für SSL/TLS-Terminierung am Reverse-Proxy (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;
    }
}

Firewall-Konfiguration

Öffnen erforderlicher Ports

Um Fess von extern zugänglich zu machen, öffnen Sie die folgenden Ports.

Konfigurationsbeispiel für iptables:

# Fess-Webanwendung
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

# Für HTTPS-Zugriff (über Reverse-Proxy)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Konfigurationsbeispiel für firewalld:

# Fess-Webanwendung
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload

Konfiguration von Sicherheitsgruppen (Cloud-Umgebungen)

In Cloud-Umgebungen wie AWS, GCP oder Azure öffnen Sie bitte die entsprechenden Ports über Sicherheitsgruppen oder Netzwerk-ACLs.

Empfohlene Konfiguration: - Eingehend: Ports 80/443 (über HTTP-Reverse-Proxy) - Port 8080 nur intern zugänglich beschränken - OpenSearch-Ports 9201/9301 nur intern zugänglich beschränken

Fehlersuche

Kein Zugriff nach Portänderung möglich

  1. Überprüfen Sie, ob Fess neu gestartet wurde.

  2. Überprüfen Sie, ob der entsprechende Port in der Firewall geöffnet ist.

  3. Überprüfen Sie Fehler in der Protokolldatei (fess.log).

Crawlen über Proxy nicht möglich

  1. Überprüfen Sie, ob Hostname und Port des Proxy-Servers korrekt sind.

  2. Wenn der Proxy-Server eine Authentifizierung erfordert, konfigurieren Sie Benutzername und Passwort.

  3. Überprüfen Sie, ob Verbindungsversuche im Protokoll des Proxy-Servers aufgezeichnet werden.

  4. Überprüfen Sie, ob die Konfiguration von nonProxyHosts korrekt ist.

Keine Verbindung zu OpenSearch möglich

  1. Überprüfen Sie, ob OpenSearch läuft.

  2. Überprüfen Sie, ob die Einstellung search_engine.http.url korrekt ist.

  3. Überprüfen Sie die Netzwerkverbindung: curl http://localhost:9201

  4. Überprüfen Sie Fehler im OpenSearch-Protokoll.

Fehlfunktion beim Zugriff über Reverse-Proxy

  1. Überprüfen Sie, ob der Header X-Forwarded-Host korrekt konfiguriert ist.

  2. Überprüfen Sie, ob der Header X-Forwarded-Proto korrekt konfiguriert ist.

  3. Überprüfen Sie, ob der Kontextpfad korrekt konfiguriert ist.

  4. Überprüfen Sie Fehler im Reverse-Proxy-Protokoll.

Referenzinformationen