Nginx 将所有 JPEG URL 重定向到单个 JPEG

Nginx 将所有 JPEG URL 重定向到单个 JPEG

我正在尝试实现两种方案。

场景 A:如果客户端请求的 URL 包含 .jpeg 或 .jpg 文件,则将用户重定向到服务器上的单个 .jpg 文件,在本例中为 myimage.jpg

场景 B:如果客户端请求的 URL 包含 /abc/ 目录,则通过代理将用户重定向到其他域,同时保持 URL 不变。

以下是我的 nginx.conf 的内容

http {

    server {
        listen 80;
        root /usr/share/nginx/html;

        #Scenario A
        location ~* \.(jpg|jpeg){
           rewrite ^(.*) http://$server_name/myimage.jpg last;
        }

        #Scenario B
        location ^~ /abc/ {
            proxy_pass http://cd.mycontent.com.my;
            proxy_redirect localhost http://cd.mycontent.com.my;
            proxy_set_header Host $host;
            }
    }
......

我参考了大部分内容Nginx 重定向到单个文件配置在 /var/log/nginx/error.log 中不包含错误,但其无法按预期执行。

答案1

如果我理解正确的话,配置应该是

场景 A

server {
    listen *:8090;
    server_name www.example.net;

    location =/test.png {
        root /vhosts/default/static;
    }

    location ~ \.(jpg|png|jpeg)$ {
        rewrite ^(.*) $scheme://$server_name:$server_port/test.png last;
    }
}

基本测试

# curl -I http://www.example.net:8090/test.png
HTTP/1.1 200 OK
Server: nginx/1.8.1
Date: Mon, 07 Mar 2016 09:23:05 GMT
Content-Type: image/png
Content-Length: 101667
Last-Modified: Fri, 19 Feb 2016 15:59:19 GMT
Connection: keep-alive
ETag: "56c73bd7-18d23"
Accept-Ranges: bytes

# curl -I http://www.example.net:8090/some_another.png
HTTP/1.1 302 Moved Temporarily
Server: nginx/1.8.1
Date: Mon, 07 Mar 2016 09:23:28 GMT
Content-Type: text/html
Content-Length: 160
Connection: keep-alive
Location: http://www.example.net:8090/test.png

场景 B

server {
    listen *:8090;
    server_name www.example.net;

    location ~ /jenkins {
       proxy_pass http://bucket.s3.amazonaws.com;
    }
}

基本测试

# curl -I http://www.example.net:8090/jenkins/aws.png
HTTP/1.1 200 OK
Server: nginx/1.8.1
Date: Mon, 07 Mar 2016 10:03:14 GMT
Content-Type: image/png
Content-Length: 16458
Connection: keep-alive
x-amz-id-2: zhHJFv/OuWaqTJ2+k1lTqoZO1Vlgt5JKFsvDP7u7ApIjzcvbruFQFcDw4Yrtz+NWyzLpaSOJqpc=
x-amz-request-id: 493B73E4048AB53A
Last-Modified: Fri, 04 Dec 2015 21:40:18 GMT
ETag: "2d6109836712d3f5425e5f2a1190f631"
Accept-Ranges: bytes

相关内容