Another trick here is to let the back-end know that it is https:

proxy_set_header X-Forwarded-Proto https;


On Wed, Feb 1, 2017 at 12:34 PM, jbiskofski <jbiskof...@gmail.com> wrote:

> I Set up my nginx as Harshal suggested and this fixed the problem. Thanks
> for the help!
>
> On Wed, Feb 1, 2017 at 3:37 AM, Dave Page <dp...@pgadmin.org> wrote:
>
>>
>>
>> On Wed, Feb 1, 2017 at 10:20 AM, Ashesh Vashi <
>> ashesh.va...@enterprisedb.com> wrote:
>>
>>> On Wed, Feb 1, 2017 at 3:44 PM, Dave Page <dp...@pgadmin.org> wrote:
>>>
>>>> On Wed, Feb 1, 2017 at 10:11 AM, Harshal Dhumal
>>>> <harshal.dhu...@enterprisedb.com> wrote:
>>>> > Hi,
>>>> >
>>>> > When I setup my machine with below server setup and without
>>>> proxy_redirect I
>>>> > got slightly different behaviour. In my case all redirects were
>>>> failing
>>>> > cause browser was redirecting all request to http while server
>>>> (nginx) was
>>>> > configure to serve only https. I didn't get any intermittent state
>>>> like
>>>> > pgAdmin4 front page was loading but other requests (like css, js) was
>>>> > failing.
>>>> >
>>>> > Issue was when pgAdmin4 app returns redirect (301 /302) response to
>>>> apache
>>>> > and apache to nginx; the nginx was returning redirect location header
>>>> as is
>>>> > (i.e. with http protocol as apache was configured to accept only http)
>>>> >
>>>> > To avoid this I need to rewrite location header at nginx
>>>> (proxy_redirect)
>>>> > before sending it to browser.
>>>> >
>>>> >         proxy_set_header X-Real-IP  $remote_addr;
>>>> >         proxy_set_header X-Forwarded-For $remote_addr;
>>>> >         proxy_set_header Host $host;
>>>> >         proxy_pass http://127.0.0.1:81;
>>>> >         proxy_redirect http:// https://;
>>>> >
>>>> > With above nginx configuration pgAdmin was loading properly.
>>>> >
>>>> > Server setup:
>>>> >
>>>> > Nginx listing at 443 (https only) and forwarding all requests to
>>>> apache at
>>>> > 127.0.0.1:81
>>>> > Apache listing at port 81 (http only) with pgAdmin4 wsgi
>>>>
>>>> Nice - thanks Harshal.
>>>>
>>>> Were you able to see why we're trying to load
>>>> http://127.0.0.1:5050/login?next=%2Fbrowser%2Fbrowser.css ? I can
>>>> reproduce that just by pointing my browser at a dev server (e.g.
>>>> werkzeug). No Apache or nginx needed.
>>>>
>>> I think - I spotted it.
>>>
>>> We've the 'login_required' decorated for the browser_css function.
>>> And, It has been referred in base.html template, which is also used in
>>> the login.html.
>>>
>>> Please try to remove '@login_required' decorator from the 'browser_css'
>>> function, found in the 'web/pgadmin/browser/__init__.py' file.
>>>
>>
>> Good shout - that fixes that problem, but leaves us with an http/500
>> error because browser_css loads per-user preferences. I think we need to
>> conditionally include this block from base.html:
>> <!-- View specified stylesheets -->
>>
>> {% for stylesheet in current_app.stylesheets %}
>> <link type="text/css" rel="stylesheet" href="{{ stylesheet }}">
>>
>> {% endfor %}
>>
>> But I don't have time to investigate further right now as I have to leave
>> for FOSDEM soon.
>>
>> --
>> Dave Page
>> Blog: http://pgsnake.blogspot.com
>> Twitter: @pgsnake
>>
>> EnterpriseDB UK: http://www.enterprisedb.com
>> The Enterprise PostgreSQL Company
>>
>
>

Reply via email to