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.
_______________________________________________ nginx mailing list nginx@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx