Hauptmenü

URL statt Port Untershied

Begonnen von PhilooLinux, 04.02.2025 07:47:09

⏪ vorheriges - nächstes ⏩

PhilooLinux

Guten Tag,

es wundert mich, aber ich habe noch keinen Eintrag dazu gefunden. Ich habe KIX v18 für einen Kunden installiert. Er möchte aber (wie ich vermute, die meisten Kunden) eine dedizierte URI pro Portal (Agent, SSP) und ohne Portangabe.

Also z.B.  https://agent.domain.suffix  für den Zugang zum Agent-Portal und https://ticket.domain.suffix für den Zugang zum Self-Service-Portal

Für den Produktivserver habe ich seine Wünsche mit zwei öffentlichen IP-Adressen und Port-Nating auf einer Firewall erfüllt. Nun muss ich aber eine Testumgebung einrichten, die nur intern erreichbar ist. Ich könnte einen Reverse-Proxy konfigurieren, aber gibt es keine Möglichkeit, die Ngnix-Instanz von KIX in Docker zu verwenden?

Ich bin für alle Vorschläge offen, hätte mir aber eine möglichst native Lösung gewünscht.

Vielen Dank.

Viele Grüße
PhilooLinux

Frank Niethardt

#1
Hallo,

ich verstehe die Frage nicht ganz. Bei https://github.com/kix-service-software/kix-on-premise ist doch nginx im Docker?

Du musst dort nur die entsprechende Config anpassen. Ausgehend von der mitgelieferten proxy Config, musst du im ersten und letzten server{} Block denselben Port angeben und zusätzlich noch die Direktive "server_name" angeben.

server {
    listen 80;
    server_name agent.domain.suffix;

...

    location / {
        proxy_pass http://upstream_frontend_ap;
...
    }
...
}

server {
...
    location / {
...
        proxy_pass http://upstream_backend;
    }

}


server {
    listen 80;
    server_name ticket.domain.suffix;
...

    location / {
        proxy_pass http://upstream_frontend_ssp;
...
    }
}

SSL Config analog...

Viele Grüße
Frank

PhilooLinux

Hallo Frank,

vielen Dank für die schnelle Antwort. Haben Sie Ihren Vorschlag ausprobiert? Außer, dass der FQDN jetzt nur noch über einen Portal Zugriff hat, hilft mir das nicht viel. Aber ich versuche noch einmal, mein Problem zu erklären.

Derzeit funktioniert KIX v18 (mit SSL und offiziellem Wildcard-Zertifikat) Einwand frei auf die URL:

https://kix.domain.suffix:20444 für das Agent Portal
https://kix.domain.suffix:20445 für das Self Service Portal

aber der Kunden will (und aus meiner Sicht macht es auch Sinn einen dedizierten FQDN pro Portal zu haben):

https://agent.domain.suffix für das Agent Portal
https://ticket.domain.suffix für das Self Service Portal

Es gibt dabei mehrere Möglichkeiten aber ich möchte weniger basteln und lieber die Hersteller empfohlene Lösung verwenden.

Der Container kix-proxy-1 zeigt die 20??? Ports außerhalb des Container an:
root@test:/opt/kix-on-premise/deploy/linux# ss -tln
State                Recv-Q                Send-Q                              Local Address:Port                                Peer Address:Port                Process
LISTEN                0                    4096                                      0.0.0.0:20443                                    0.0.0.0:*
LISTEN                0                    4096                                      0.0.0.0:20444                                    0.0.0.0:*
LISTEN                0                    4096                                      0.0.0.0:20445                                    0.0.0.0:*
LISTEN                0                    4096                                      0.0.0.0:20002                                    0.0.0.0:*
LISTEN                0                    4096                                      0.0.0.0:20000                                    0.0.0.0:*
LISTEN                0                    4096                                      0.0.0.0:20001                                    0.0.0.0:*
LISTEN                0                    128                                        0.0.0.0:22                                        0.0.0.0:*
LISTEN                0                    4096                                          [::]:20443                                        [::]:*
LISTEN                0                    4096                                          [::]:20444                                        [::]:*
LISTEN                0                    4096                                          [::]:20445                                        [::]:*
LISTEN                0                    4096                                          [::]:20002                                        [::]:*
LISTEN                0                    4096                                          [::]:20000                                        [::]:*
LISTEN                0                    4096                                          [::]:20001                                        [::]:*
LISTEN                0                    4096                                            *:6556                                            *:*
LISTEN                0                    128                                          [::]:22                                          [::]:*


Wie man sieht, sind die Container-Ports für kix-proxy-1, also nginx gemappt:
root@test:/opt/kix-on-premise/deploy/linux# docker ps
CONTAINER ID  IMAGE                                                                                    COMMAND                  CREATED        STATUS                  PORTS                                                                                                                                                                                                                                                                                NAMES
1df1d1713093  docker-registry.kixdesk.com/customers/<CustomerID>/proxy:stable      "/docker-entrypoint...."  15 hours ago  Up 15 hours (healthy)  0.0.0.0:20001->80/tcp, [::]:20001->80/tcp, 0.0.0.0:20444->443/tcp, [::]:20444->443/tcp, 0.0.0.0:20000->8080/tcp, [::]:20000->8080/tcp, 0.0.0.0:20443->8443/tcp, [::]:20443->8443/tcp, 0.0.0.0:20002->9080/tcp, [::]:20002->9080/tcp, 0.0.0.0:20445->9443/tcp, [::]:20445->9443/tcp  kix-proxy-1
4d1334047f49  docker-registry.kixdesk.com/customers/<CustomerID>/frontend:stable  "/docker-entrypoint...."  15 hours ago  Up 15 hours (healthy)                                                                                                                                                                                                                                                                                        kix-frontend-1
e588ba638a41  docker-registry.kixdesk.com/customers/<CustomerID>/backend:stable    "/docker-entrypoint...."  15 hours ago  Up 15 hours (healthy)                                                                                                                                                                                                                                                                                        kix-backend-1
640268b48269  docker-registry.kixdesk.com/customers/<CustomerID>/redis:stable      "docker-entrypoint.s..."  15 hours ago  Up 15 hours (healthy)  6379/tcp                                                                                                                                                                                                                                                                            kix-redis-1
f7daee3cf447  docker-registry.kixdesk.com/customers/<CustomerID>/db:stable        "docker-entrypoint.s..."  15 hours ago  Up 15 hours (healthy)                                                                                                                                                                                                                                                                                        kix-db-1


Vielen Dank für Ihre Hilfe.

Viele Grüße
PhilooLinux

Frank Niethardt

Moin,

also bei uns läuft das so. Zusätzlich zu der proxy Konfiguration haben wir noch in der environment Datei 

FRONTEND_PORT_SSL=443
eingestellt. Damit wird der 443 an nginx weitergeleitet und mit den beiden server_name Direktiven verteilt der das dann jeweils weiter - entweder an das SSP oder an das Agenten Portal.

Viele Grüße
Frank

PhilooLinux

Hallo Frank,

ich weiß, dass es diese Datei gibt und dass sie für Docker verwendet wird aber:
  • Ich kann den gleichen Port (443) nicht zweimal verwenden.
  • Ich kann nicht unterscheiden, welcher FQDN angesprochen wird.

Viele Grüße
PhilooLinux

Frank Niethardt

Moin,

also einer von uns beiden steht ein wenig auf dem Schlauch. In der environment Datei taucht der 443 nur einmal auf - beim FRONTEND_PORT_SSL. In der proxy Konfiguration gibt es bei uns drei Server-Blöcke. Der zweite davon ist unverändert. 

Der Erste lauscht auf Port 443 und den Agent-Portal Namen:
server
{
  listen                  443 ssl;
  server_name             agent.domain.suffix;
...
  location /
  {
    proxy_pass                         http://upstream_frontend_ap;
...
  }
}

und der Dritte lauscht auf auf 443 und den SSP Namen

server
{
  listen                               443 ssl default_server;
  server_name                          ticket.domain.suffix;
...

  location /
  {
    proxy_pass                         http://upstream_frontend_ssp;
...
  }
}

Also unterscheidet der Proxy die Namen...

Viele Grüße
Frank

PhilooLinux

Hallo Frank,

ich habe es zum Laufen bekommen.

Danke.

Viele Gruße
PhilooLinux