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