Re: Issue with pgAdmin 4 Login Behind NGINX Reverse Proxy at /pgadmin4 Path - Mailing list pgadmin-support
From | Khushboo Vashi |
---|---|
Subject | Re: Issue with pgAdmin 4 Login Behind NGINX Reverse Proxy at /pgadmin4 Path |
Date | |
Msg-id | CAFOhELfcm=COzGmptAaEaZvQULovjxOswLee2yTzMdat_WaW+Q@mail.gmail.com Whole thread Raw |
In response to | Re: Issue with pgAdmin 4 Login Behind NGINX Reverse Proxy at /pgadmin4 Path (Shakir Idrisi <shakir@webuzo.com>) |
List | pgadmin-support |
On Wed, Aug 6, 2025 at 11:38 AM Shakir Idrisi <shakir@webuzo.com> wrote:
Hi,
I referred to the documentation, but my Nginx setup doesn’t have the proxy_params file. So I manually added the proxy_set_header lines. However, after logging in, pgAdmin4 was showing a blank page.
To fix it, I changed: proxy_set_header Host $host;
to: proxy_set_header Host $http_host;
After this change, it began to work. I just want to confirm — is this the correct approach, or is it working by chance due to a header mismatch?
Both are different, and $host should be used. You can refer https://stackoverflow.com/questions/39715510/nginx-when-to-use-proxy-set-header-host-host-vs-proxy-host for more understanding.
On Wed, Aug 6, 2025 at 11:00 AM Khushboo Vashi <khushboo.vashi@enterprisedb.com> wrote:Hi,Please refer https://www.pgadmin.org/docs/pgadmin4/9.6/server_deployment.html#nginx-configuration-with-gunicorn for nginx configuration.On Wed, Aug 6, 2025 at 10:56 AM Shakir Idrisi <shakir@webuzo.com> wrote:Hi,Apologies for the interruption. May I kindly ask if the configuration I provided in my previous reply is correct?On Tue, Aug 5, 2025 at 4:57 PM Shakir Idrisi <shakir@webuzo.com> wrote:Hi,I updated the configuration and it's now working.
I'm using it$http_host
instead of$host
for theHost
header.
Just want to confirm — is this the correct and recommended way?location ^~ /pgadmin4/ {proxy_pass http://unix:/tmp/pgadmin4.sock;
proxy_set_header Host $http_host; # here i have changed $host to $http_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;
proxy_set_header X-Script-Name /pgadmin4;
proxy_http_version 1.1;}
proxy_read_timeout 300;
proxy_connect_timeout 60;On Tue, Aug 5, 2025 at 2:55 PM Shakir Idrisi <shakir@webuzo.com> wrote:Hi,Do you have any updates or suggestions that could help me further debug this issue?On Tue, Aug 5, 2025 at 10:23 AM Shakir Idrisi <shakir@webuzo.com> wrote:Hi,Yes I have tried that conf which you have provided.I have mentioned that in my last reply that it is not working.Still getting blank page after login on https.On Tue, Aug 5, 2025, 9:53 AM Yogesh Mahajan <yogesh.mahajan@enterprisedb.com> wrote:Hi,I have already provided the nginx configuration. Have you tried it? Issues is clearly with Nginx config.Thanks,Yogesh MahajanEnterpriseDBOn Mon, Aug 4, 2025 at 4:34 PM Shakir Idrisi <shakir@webuzo.com> wrote:Hi,
I’ve tried the suggested changes, but I’m still encountering the same issue — a blank page appears after logging in over HTTPS.
As a workaround, I modified the config_local.py file and set:
WTF_CSRF_CHECK_DEFAULT = False
With this change, pgAdmin works correctly on HTTPS. However, I understand that disabling CSRF protection is not recommended in a production environment, so I’m looking for a more secure solution.
Here’s a snippet of my current config_local.py for reference:
DATA_DIR = '/var/lib/pgadmin4'
SQLITE_PATH = '/var/lib/pgadmin4/pgadmin4.db'
SESSION_DB_PATH = '/var/lib/pgadmin4/sessions'
STORAGE_DIR = '/var/lib/pgadmin4/storage'
AZURE_CREDENTIAL_CACHE_DIR = '/var/lib/pgadmin4/azurecredentialcache'
KERBEROS_CCACHE_DIR = '/var/lib/pgadmin4/kerberoscache'
SCRIPT_NAME = '/pgadmin4'
LOG_LEVEL = 'DEBUG'
CONSOLE_LOG_LEVEL = 50 # INFO = 20, WARNING = 30, ERROR = 40, CRITICAL = 50
FILE_LOG_LEVEL = 20
LOG_FILE = '/var/lib/pgadmin4/log/pgadmin4.log'
Could you please help me identify the correct settings to securely enable CSRF protection while ensuring pgAdmin functions properly over both HTTP and HTTPS under /pgadmin4?
pgadmin-support by date: