GeoNode / geonode-project

A django template project for creating custom GeoNode projects.
http://geonode.org
78 stars 172 forks source link

too many redirects - docker installation #277

Open ferchimi opened 2 years ago

ferchimi commented 2 years ago

I'm trying to run a geonode 3.3.x project behind an haproxy which already deals with SSL/TLS certificates and redirects, then proxies http plain traffic to the dockerized nginx that geonode deploys whenever I hit my https URL, dockerized nginx redirects back to https, and so on, generating a loop and TOO_MANY_REDIRECTS how can I permanently disable https on the nginx and listen to the correct host? my .env file section looks like this HTTP_HOST=mygeonodehost.example

and LETSENCRYPT_MODE=disabled

note that this also happens for geoserver host, which i don't want to expose publicly and is configured for use inside private network as follows GEOSERVER_WEB_UI_LOCATION=http://10.10.102.99/geoserver/ GEOSERVER_PUBLIC_LOCATION=http://10.10.102.99/geoserver/ GEOSERVER_LOCATION=http://geoserver:8080/geoserver/ GEOSERVER_ADMIN_USER=admin GEOSERVER_ADMIN_PASSWORD=geoserver

Please help Regards, Fernando

frafra commented 2 years ago

GEOSERVER_WEB_UI_LOCATION and GEOSERVER_PUBLIC_LOCATION should use HTTPS (the last one especially). Be sure to not having set HTTPS_* variables.

ferchimi commented 2 years ago

GEOSERVER_WEB_UI_LOCATION and GEOSERVER_PUBLIC_LOCATION should use HTTPS (the last one especially). Be sure to not having set HTTPS_* variables.

In my case, I need ALL the traffic to be plain http, as I deal with https and certificates in the frontend and I have no way around this In version 3.1.x I did not have this problem

frafra commented 2 years ago

I got that, and I have the very same setup in my company. There is still need to know the public location of your service. GEOSERVER_WEB_UI_LOCATION is used for the client (look for WEB_UI_LOCATION in the geonode/geonode repository: you will find various templates relying on that).

If you set a http -> https redirect and geonode or geoserver redirect you to what they think is the public URL using http, you get an infinite redirect loop.

I can confirm this is the case for previous versions of GeoNode too, including pre-3.0.

If you still have doubts or problems, look how the redirect loops looks like (what are the URLs involved, etc.).

ferchimi commented 2 years ago

I got that, and I have the very same setup in my company. There is still need to know the public location of your service. GEOSERVER_WEB_UI_LOCATION is used for the client (look for WEB_UI_LOCATION in the geonode/geonode repository: you will find various templates relying on that).

If you set a http -> https redirect and geonode or geoserver redirect you to what they think is the public URL using http, you get an infinite redirect loop.

I can confirm this is the case for previous versions of GeoNode too, including pre-3.0.

If you still have doubts or problems, look how the redirect loops looks like (what are the URLs involved, etc.).

that's exactly what I got, an infinite redirect loop I have little to no experience with geonode... If you don't mind, can you give some details like where in the tree are the relevant files to configure this stuff? it's a very problematic piece of software, fails differently every time you create a project, it's not very clean Regards and thank you very much for your answers