Nginx dynamic proxy_pass keeps redirecting to wrong domain
Ruben
rdocter at gmail.com
Thu Nov 16 20:59:49 UTC 2017
I am using the following config:
http {
server {
listen 80;
location / {
resolver 127.0.0.11;
auth_request /auth;
auth_request_set $instance $upstream_http_x_instance;
proxy_pass http://$instance;
}
location = /auth {
internal;
proxy_pass http://auth;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
proxy_set_header X-Original-URI $request_uri;
}
}
}
I want to auth all routes (location /) to this server. It is a content
server.
The proxy_pass http://auth; call does the real authentication and is a Go
Lang server. The response in this requests sets also a header X-Instance.
Which reflects a name of a docker service, for example instance-001.
If authentication succeeds auth_request_set is set with the value of the
header X-Instance for example instance-001.
Now I want to serve content from this instance by utilizing proxy_pass
http://$instance;. Now I have read a lot about dynamic proxy_pass and what
to do, but nothing succeeds.
The problem is, when I go to http://example.com/cdn/test/test.jpg in the
browser, it redirects me to http://instance-001/cdn/test/test.jpg. Which is
ofcourse not correct. It should proxy the docker service with name
instance-001.
I have looked into proxy_redirect but for me it isn't clear how to set it
correctly. I also tries a rewrite like rewrite ^(/.*) $1 break; in location
= /auth. But still have the annoying redirect to
http://instance-001/cdn/test/test.jpg. I've been struggling with this for a
very long time now and I also can't find a solid solution.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20171116/0b5bbb18/attachment.html>
More information about the nginx
mailing list