[solved] nginx proxy_pass to directory
-
Hello, I would like to have a quasar frontend hidden behind nginx proxy in a way that https authentication is terminated and handled by nginx webserver at https://domain/quasar and then is beeing proxied internally to http://localhost:8090 where I run quasar app itself.
Normally this is being done via proxy_pass setting in nginx, but it does not work. I think I need to set some proxy_set_header as well, but do not know how. Is this possible?
http://domain:8090 works fine, but that is not what I need… Many thanks for your help / thoughts!
-
Been There done that. Have it working, You need to set a custom proxy path for your app. I am sure you’ve looked into this https://quasar-framework.org/guide/app-api-proxying.html . So let’s say you choose the path api/ so your api will be accessible at https://localhost:8090/api/ . The only header you need to forward form the nginx proxy_pass is the ip address. Rest every other header is sent automatically. So you will need to add proxy_set_header remote_addr $remote_addr; to your nginx config in the proxy.
-
Yes, but not really. I meant to run Quasar itself in a path like https://domain/quasar not / root directory as usual. In other words, running /quasar the same as /api (with node.js backed) and /vuetify (with another frontend) etc. All that on one domain. Cannot make it work…
As a workaround I decided to change the logic in a way, that every frontend gets own subdomain like: frontend1.domain.org and frontend2.domain.org - that is fine since every frontend gets it own root and works as designed.
But. That means new Nginx configuration, new https certificate, … the pain I hoped to avoid.
-
OK, I am an idiot. Nginx proxy_pass to directory works fine with Quasar (using beta10). It just needs to be specified as “location /quasar/” with trailing / as explained at https://stackoverflow.com/questions/26449466/nginx-proxy-pass-to-a-directory
Plus “publicPath” in quasar.conf.js needs to be adjusted to.
my nginx config:
location /quasar/ {
proxy_pass http://localhost:8090;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header REMOTE_ADDR $remote_addr;
}and
quasar.conf.js configuration:
devServer: {
publicPath: “/quasar/”,Hope it helps somebody.