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?

On Wed, Aug 6, 2025 at 11:00 AM Khushboo Vashi <
khushboo.va...@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 <sha...@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 <sha...@webuzo.com> wrote:
>>
>>> Hi,
>>>
>>> I updated the configuration and it's now working.
>>> I'm using it *$http_host* instead of *$host* for the *Host *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 <sha...@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 <sha...@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.maha...@enterprisedb.com> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I have already provided the nginx configuration. Have you tried it?
>>>>>> Issues is clearly with Nginx config.
>>>>>>
>>>>>> Thanks,
>>>>>> Yogesh Mahajan
>>>>>> EnterpriseDB
>>>>>>
>>>>>>
>>>>>> On Mon, Aug 4, 2025 at 4:34 PM Shakir Idrisi <sha...@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?
>>>>>>>
>>>>>>>>

Reply via email to