Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Installation behind a web-proxy doesn't seem to work #15

Open
StoffelCPR opened this issue Jul 3, 2024 · 7 comments
Open

Installation behind a web-proxy doesn't seem to work #15

StoffelCPR opened this issue Jul 3, 2024 · 7 comments
Labels
bug Something isn't working

Comments

@StoffelCPR
Copy link

I've installed using your docker-compose and everything is et up.. I can get to the install page but after installing behind an nginx proxy with ssl termination

https://cloudlog.my.domain -> http://localhost:7373 it just blanks and I can't do anything!?

@jk13xyz jk13xyz added the bug Something isn't working label Jul 3, 2024
@jk13xyz
Copy link
Owner

jk13xyz commented Jul 3, 2024

Hi,

ich bin mal frech und gehe mal davon aus, dass du Deutsch kannst. Ein paar Fragen:

  1. Meinst du mit "nginx proxy" den recht beliebten "NGINX Proxy Manager" oder hast du manuell einen Proxy mit NGINX aufgesetzt? Läuft das ganze bare metal oder in Docker?
  2. Falls in Docker, welchen Port hast du für die Cloudlog-Instanz gewählt?
  3. Hat deine URL für die Instanz mit der URL übereinstimmt, die bei der Installation angezeigt wurde? Welches Ergebnis bekommst du angezeigt wenn du das hier in einem Terminal deiner Wahl auf dem Docker-Host ausführst bzw. stimmt es mit deiner URL überein?

docker exec -it cloudlog-main cat /var/www/html/application/config/config.php | grep 'base_url'

  1. Es kann sein, dass du deinen (Reverse) Proxy erst whitelisten musst:

docker exec -it cloudlog-main sed -i "s/\$config\['proxy_ips'\] = '';/\$config['proxy_ips'] = '10.1.2.3';/" /var/www/html/application/config/config.php

Ersetze die IP mit der IP deines Proxies. Schau ggf. ins Docker Log des Containers, welche IP da angezeigt wird.

@StoffelCPR
Copy link
Author

Hey,

Da liegst du richtig:

Whitelisten hab ich noch nicht probiert. Ehrlich gesagt sehe ich die IP des nginx auch nicht.. Der nginx läuft außerhalb auf dem system..

$config['base_url'] = 'https://cloudlog.my.domain';

Ich setze einfach den nginx web server ein. Der läuft bei mir für alle services und macht einen proxy_pass auf localhost:7373

@StoffelCPR
Copy link
Author

Nvm. war nur blind.

Hab jetzt das gesamte 192.168.X.X netz whitelisted, da bei nem docker-compose down das netzwerk neu erstellt wird.

Apache gibt nen 305 zurück

Und selbst wenn ich direkt meine Server IP addresse nehme und direkt den port benutze geht das auf dem server auch nciht

@jk13xyz
Copy link
Owner

jk13xyz commented Jul 3, 2024

Probier für die Whitelist mal:

docker inspect cloudlog-main | grep Gateway

Falls dir zwei IPs angezeigt bekomme, nehm die erste.

Kann aber auch sein, dass es an NGINX liegt. Ohne die Config von dir zu kennen ist das aber schwer zu beurteilen. Setzt du mit NGINX irgendwelche Proxy Header (bspw. "X-Forwarded-For")?

@StoffelCPR
Copy link
Author

Ja. Alle "normalen" header für nen proxy_pass.

location / {
        proxy_pass http://localhost:7373;
        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;
}

Das ist nur ein "extrakt"

Aber wie gesagt.. Auf dem server funktioniert das auch nicht, wenn ich die ip-addresse direkt verwende ohne proxy dazwischen

@jk13xyz
Copy link
Owner

jk13xyz commented Jul 3, 2024

Okay. Ich mach mir mal ein Test-Setup und versuche das zu reproduzieren.

@jk13xyz
Copy link
Owner

jk13xyz commented Jul 3, 2024

Ich hab jetzt mal ein einfaches Test-Setup gemacht ohne viel Firlefanz. Dein wirkliches Setup kann ich wahrscheinlich eh net nachbauen, aber here we go:

  • Debian 12
  • NGINX
  • Docker mit Docker Compose

Schritte zur Reproduktion:

NGINX-Config gespeichert für cloudlog.domain.xyz (Beispiel) unter /etc/nginx/sites-available/cloudlog.domain.xyz:

`server {
listen 80;
server_name cloudlog.domain.xyz;

    location / {
            proxy_pass http://127.0.0.1:7373;
            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;
    }

}
`

Im nächsten Schritt hab ich einen Symlink von dieser Datei zu /etc/nginx/sites-enabled/cloudlog.domain.xyz erstellt, eine leere index.cloudlog.domain.xyz.html-Datei unter /var/www/html mit "touch" erstellt.

Ein Reload von NGINX mit "sudo nginx -s reload" durchgeführt.

Abschließend wurde der Docker-Stack von Cloudlog mit der Compose-Datei aus dem Repo gestartet.

Resultat:

  1. Cloudlog konnte über die Domain aufgerufen werden
  2. Die Installation ließ sich problemlos durchführen
  3. Nach der Installation wurde erwartungsgemäß zum Login umgeleitet. Der Login über den Standartaccount funktionierte.

Ich musste kein Eintrag in der Whitelist vornehmen o. ä. Alles hat "out-of-the-box" funktioniert.

Ich bin daher am Kopf kratzen... Insbesondere frage ich mich, wieso Apache überhaupt USE_PROXY auswirft.

Frage:

  • Benutzt du andere Docker-Container mit deinem NGINX-Setup? Hattest du schon einmal solche Probleme?
  • Was sagt curl -I https://cloudlog.my.domain?

EDIT: Ich vermute mittlerweile, dass Apache durch die Whitelist jetzt den 305er auswirft. Mach das vielleicht mal rückgängig und benutze danach nochmal curl.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants