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 >> > >