我正在尝试使用代理传递来访问图像服务,但是,我的nginx容器正在端口8080
上运行,当nginx传递给服务时,它将用户重定向到端口80
。 / p>
这是我的Nginx代码段:
location /api/Image/ {
proxy_pass http://image.service.com/api/Image?$args;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
我的卷曲请求示例:
➜ .ssh curl -I http://local.docker:8080/api/Image\?urlId\=s4U3y%2FjS%2FPqDJjS%2BQzOjOu4PvCLx8QQQmwd2%2BwTT8C8%3D
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Mon, 03 Dec 2018 16:01:18 GMT
Content-Type: text/html
Content-Length: 178
Location: http://local.docker/api/Image/?urlId=s4U3y%2FjS%2FPqDJjS%2BQzOjOu4PvCLx8QQQmwd2%2BwTT8C8%3D
Connection: keep-alive
Strict-Transport-Security: max-age=63072000; includeSubdomains;
X-UA-Compatible: IE=Edge
我的最终目标是添加一个jpg
后缀,但是我的主要问题是我无法确定如何防止nginx重定向到端口80
。
答案 0 :(得分:2)
基于该NGINX块,您将需要请求URL 包括末尾斜杠。
NGINX块将按以下方式匹配URL:
/api/Image/foo/bar
/api/Image/
但不是
/api/Image
您的cURL命令的构造方式如下:
curl http://local.docker:8080/api/Image\?urlId\=s4U3y%2FjS%2FPqDJjS%2BQzOjOu4PvCLx8QQQmwd2%2BwTT8C8%3D
重定向可能来自默认块,我想它根本不是来自NGINX,而是上游代理。