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 >