Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to configure app for use behind Nginx reverse proxy #119

Closed
SysEngDan opened this issue Feb 4, 2021 · 6 comments
Closed

Unable to configure app for use behind Nginx reverse proxy #119

SysEngDan opened this issue Feb 4, 2021 · 6 comments

Comments

@SysEngDan
Copy link

I'm running QT with Docker, using image d4software/querytree:c63e66f. I have many, many website running behind the reverse proxy which work without issue. When configuring QT with a simple, basic proxy_pass config, the QT redirects to the Docker service name. It seems like out of the box, QT doesn't honor X-Forwarded-For and Proto headers.

Any advice?

        location / {
                resolver 127.0.0.11 valid=10s;
                real_ip_header proxy_protocol;
                set_real_ip_from 192.168.30.1/32;
                set $upstream reports_example_com_php;
                proxy_set_header X-Real-IP $proxy_protocol_addr;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Server $host;
                proxy_set_header X-Forwarded-For $proxy_protocol_addr;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_pass http://$upstream;
        }
@PandelisZ
Copy link
Member

Thanks for the great feedback.

This is definately something that we should support as its pretty much the standard way of routing in the cloud native era.

@SysEngDan
Copy link
Author

SysEngDan commented Feb 5, 2021

Should this be considered a bug since proxy support is already written in readme.md?

“For use in production environments, QueryTree should be run behind a reverse proxy such as nginx. For more information on hosting QueryTree using nginx see: https://docs.microsoft.com/en-us/aspnet/core/publishing/linuxproduction

@PandelisZ
Copy link
Member

This project was originally refactored form a windows only .NET stack back in the day so theres definately lots of nice .NET core features we've missed.

Looks like it s amatter of enabling the forwarding headers. It's not something that's automatically taken care of:

using Microsoft.AspNetCore.HttpOverrides;

app.UseForwardedHeaders(new ForwardedHeadersOptions
{
    ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});

app.UseAuthentication();

PandelisZ added a commit that referenced this issue Feb 5, 2021
@PandelisZ
Copy link
Member

PandelisZ commented Feb 5, 2021

@SysEngDan could you give d4software/querytree:reverse-proxy a go?

@SysEngDan
Copy link
Author

I gave it a shot but I'm still saying the same response. What happens is that the application redirects from the initial request (https;//reports.example.com) to this https://reports_example_com_app/Account/Login?ReturnUrl=%2F (that's the docker service name). This tells me that the application isn't honoring X-Forwarded-Host (which contains the original hostname).

@stale
Copy link

stale bot commented Apr 19, 2022

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the wontfix label Apr 19, 2022
@stale stale bot closed this as completed Apr 27, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants