Topic Resolution: Answered
Viewing 6 reply threads
  • Author
    Posts
    • #12563
      Answered
      Robin
      Participant

      Hallo zusammen,
      ist es möglich die OTOBO URL ohne nginx umzuleiten?

      Unser Szenario ist folgendes. Wir haben unsere OTOBO Instanz hinter einem Reverse-Proxy (Traefik) aufgesetzt und würden jetzt gerne die URL wie folgend anpassen.

      Kundeninterface: domain.de

      Agenteninterface: domain.de/agent

       

      Ist es möglich das ganze so einzustellen, ohne den nginx von OTOBO zu benutzen, oder müssen wir diesen zwangsläufig nutzen?

      Danke und Gruß Robin

       

    • #12572
      bes
      Participant

      Hallo Robin,

      zuerst einmal ist der Webserver, der die OTOBO Web-App ausliefert, unabhängig von vorgeschalteten Reverse-Proxys. Technisch ist das in bin/cgi-bin/otobo.psgi abgebildet. Dort wird geprüft ob der  HTTP-Header HTTP_X_FORWARDED_HOST gesetzt ist, Wenn ja, dann werden die entsprechenden Header umgeschrieben. Das sollte auch mit Traefik funktionieren.

      In der Frage ist vom „OTOBO nginx“ die Rede. Ich vermute also dass es sich um eine Docker-basierte Installation handelt. In diesen Fall dient der nginx allein zur TLS Terminierung. Wenn man die .env-Datei von der Vorlage .docker_compose_env_http ableitet, dann ist nginx komplett raus. Auf dem Docker host ist dann OTOBO über Port 80 verfügbar. In .env kann man über die Einstellung OTOBO_WEB_HTTP_PORT auch einen anderen Port einstellen. Die TLS-Terminierung muss dann von Traefik erledigt werden. Eine Beispielskonfiguration, in diesen Fall für Apache als Reverse Proxy, ist in scripts/apache2-httpd-plack-proxy.include.conf abgelegt.

      Mit der Anpassung der URLs habe ich leider keine konkrete Erfahrung. Problematisch finde ich dass Agenten- und Kunden-Interface auf verschiedenen Ebenen liegen sollen. In der OTOBO SysConfig gibt es ja die Einstellung ScriptAlias. Diese Einstellung setzt aber den Pfad zu sowohl index.pl als auch customer.pl. Daneben gibt es auch noch /otobo-web/ mit statischen Content. Der  Pfad dazu ist mit Frontend::WebPath einstellbar. Mein Tipp wäre also die Struktur prinzipiell unverändert zu lassen und kurze Einstiegs-URLs per Redirect im Traefik bereitzustellen. Wenn man ‚otobo‘ nicht im Pfad haben will, dann kann die SysConfig anpassen und beispielsweise folgende URLs nach außen geben:

      • domain.de/support/index.pl  (Agenten)
      • domain.de/support/customer.pl (Kunden)
      • domain/support-static/  (JavaScript, CSS, common content)

      In der SysConfig ist mir noch aufgefallen dass otobo-web an drei Stellen hart verdrahtet ist. Das sollte in OTOBO 10.1 verbessert sein, siehe https://github.com/RotherOSS/otobo/issues/1582.

       

      Viele Grüße und viel Erfolg mit OTOBO,

      Bernhard Schmalhofer

       

       

       

    • #12596
      Robin
      Participant

      Hallo bes,
      danke für deine Antwort! Bitte entschuldige die verspätete Reaktion.

      Wie ich sehe ist das ganze nicht so einfach zu realisieren. Für den Anfang würde es uns schon reichen, wenn das /otobo/ rausfallen würde und wir direkt auf das Kundeninterface und nicht das Agenteninterface weitergeleitet werden.

      Sprich das unsere „domain.de“ auf „domain.de/customer.pl“ weiterleitet und man durch manuelles angeben von /index.pl auf das Agenteninterface kommt. Ist das zu realisieren?

      Gruß und Danke Robin!

    • #12597
      bes
      Participant

      Hallo Robin,

      für dieses Szenario ist es, wenigstens aus meiner Sicht, am einfachsten die Anpassungen direkt in bin/psgi-bin/otobo.psgi einzupflegen. I probiere das morgen mal aus.

      Viele Grüße,

      Bernhard

       

    • #12598
      Best Answer
      bes
      Participant

      Hallo,

      ich habe die geänderten URLs auf einer HTTP-only Installation unter Docker ausprobiert. Ich habe dazu zwei Dateien angepasst.

      1. /opt/otobo/var/httpd/htdocs/index.html – Damit die Domain URL auf /customer.pl geht
      2. /opt/otobo/bin/psgi-bin/otobo.psgi – Für Unterstützung von /index.pl und /customer.pl, default /customer.pl

      Mit den geänderten Dateien konnte ich http://localhost/installer.pl ausführen. Die URL die am Ende von installer.pl ist aber nicht korrekt.

      Mit root@localhost konnte ich mich dann auf http://localhost/index.pl einloggen. Danach dann in der Systemkonfiguration den Wert von SkriptAlias auf den Leerstring setzen. Dabei musste ich mich zweimal neu einloggen. Das ist nachvollziehbar, da SkriptAlias Einfluss auf das Session-Cookie hat. Danach hat index.pl prinzipiell  funktioniert. Die Redirekts auf customer.pl waren auch erwartungsgemäß. customer.pl selbst habe ich aber nicht mehr getestet.

      Die zwei geänderten Dateien habe ich zum Testen bereits beim Bau des Docker-Images geändert. Für die Produktion empfehle ich ein eigenes Docker-Image zu bauen.  Für das spezielle Image kann man OTOBO web Image als Basis nehmen und die zwei Dateien mit COPY einpflegen . Aber man kann die Dateien auch nach dem Start des Containers otobo_web_1 in das Volume kopieren und dann otobo_web_1 neu starten. Das kopieren kann man mit docker cp erledigen. Bei Versionsupgrades muss man dann natürlich aufpassen.

      Viele Grüße,

      Bernhard

    • #12599
      bes
      Participant

      Ergänzung: die angepassten Dateien habe an das Issue 1279 angeheftet.

    • #12600
      Robin
      Participant

      Hallo bes,

      danke für deine Hilfe. Die weiterleitung auf die customer.pl habe ich gestern tatsächlich durch zufall selber schon gefunden und geändert. funktioniert soweit alles.

      Als nächstes werde ich versuchen /otobo/ aus der Domain zu streichen. Ich bin gerade dabei eine Test Instanz aufzusetzen.
      Anhand dieser werde ich dann auch die kommenden Updates zuerst testen

      Gruß Robin

Viewing 6 reply threads
  • You must be logged in to reply to this topic.