AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-733761

TravelWhere's questions

Martin Hope
TravelWhere
Asked: 2022-01-20 20:43:07 +0800 CST

重定向在 nginx 上导致 404 错误

  • 0

如果用户尝试仅在浏览器中直接访问图像文件,我该如何重定向?我仍然希望保留允许社交媒体网站通过热链接嵌入我们的图像的能力。我只希望用户通过浏览器直接访问图像进行重定向。

这是我的 nginx 配置文件

proxy_cache_path /var/www/img.example.com/htdocs/cache-store levels=1:2 keys_zone=pixstore:10m max_size=5g inactive=7d use_temp_path=off;
server {

    server_name img.example.com www.img.example.com;

    access_log /var/log/nginx/img.example.com.access.log ;
    error_log /var/log/nginx/img.example.com.error.log;

    add_header X-Proxy-Cache $upstream_cache_status;
    location / {
        proxy_cache pixstore;
        proxy_cache_revalidate on;
        proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
        proxy_cache_lock on;
        add_header X-Cache-Status $upstream_cache_status;
        proxy_pass http://xxx.xxx.xxx.xxx:8090;
        proxy_redirect off;
        include proxy_params;
        proxy_cache_valid 200 7d;
        proxy_cache_valid 404 5m;
    }

    location ~ "^/c/600x1200_90_webp/img-master/img/\d+/\d+/\d+/\d+/\d+/\d+/((?<filenum>\d+)[^/]+\.(jpg|png|webp))$" {
    valid_referers server_names;
    if ($invalid_referer = "0") {
    return 301 http://view.example.com/artwork/$filenum; }
    }

}

nginx错误日志

2022/01/19 12:09:23 [error] 7426#7426: *30 open() "/usr/share/nginx/html/c/600x1200_90_webp/img-master/img/2021/06/09/00/00/05/90423484_p0_master1200.jpg" failed (2: No such file or directory), client: xxx.xxx.xxx.xxx, server: img.example.com, request: "GET /c/600x1200_90_webp/img-master/img/2021/06/09/00/00/05/90423484_p0_master1200.jpg HTTP/1.1", host: "img.example.com"

重定向不起作用,但如果我尝试访问任何图像文件,它会给我一个 404 错误。我将其设置为反向代理站点,因此我没有定义根路径。我怎样才能解决这个问题?

nginx
  • 0 个回答
  • 1263 Views
Martin Hope
TravelWhere
Asked: 2022-01-16 18:59:25 +0800 CST

如果通过浏览器直接访问图像文件,如何重定向用户?[nginx]

  • 0

如果用户尝试仅在浏览器中直接访问图像文件,我该如何重定向?我想保留嵌入图像的能力<img src="...">。如何从重定向

https://img.example.com/c/600x1200_90_webp/img-master/img/2022/01/03/08/04/54/95259215_p0_master1200.jpg

至

https://example.com/detail?id=95259215

这是我的 nginx 配置文件

location ~ "^/c/600x1200_90_webp/img-master/img/\d+/\d+/\d+/\d+/\d+/\d+/(?<filename>.+\.(jpg|png|webp))$" {
    return 301 https://example.com/detail?id=$filename;
}

代码不起作用,因为它会起作用,https://example.com/detail?id=95259215_p0_master1200.jpg但我需要它在文件名的最后一位数字之后修剪字符串,所以在这种情况下 trim off _p0_master1200.jpg。如果用户通过浏览器访问它,我也不知道如何制作它。

rewrite redirect nginx
  • 1 个回答
  • 264 Views
Martin Hope
TravelWhere
Asked: 2021-06-10 23:27:10 +0800 CST

反向代理的 Nginx 冲突服务器名称

  • 0

我为我的子域创建了一个反向代理配置,但是当我运行nginx -t它时发出警告[warn] conflicting server name "img.somedomain.com" on 0.0.0.0:80, ignored

proxy_cache_path /root/cache-proxy levels=1:2 keys_zone=pximg:10m max_size=10g inactive=7d use_temp_path=off;

server {
    server_name  img.somedomain.com;
    listen 80;
    access_log off;

    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    ssl_certificate     /etc/letsencrypt/live/img.somedomain.com/fullchain.pem;
    ssl_certificate_key     /etc/letsencrypt/live/img.somedomain.com/key.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/img.somedomain.com/ca.pem;
    ssl_stapling_verify on;

    location / {
        proxy_cache pximg;
        proxy_pass https://i.pximg.net;
        proxy_cache_revalidate on;
        proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
        proxy_cache_lock on;
        add_header X-Cache-Status $upstream_cache_status;
        proxy_set_header Host i.pximg.net;
        proxy_set_header Referer "https://www.pixiv.net/";
        proxy_set_header User-Agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36";

        proxy_cache_valid 200 7d;
        proxy_cache_valid 404 5m;
    }
}

反向代理确实有效,但我不知道是什么导致了服务器名称冲突,因为我在我的配置中看不到任何重复项。任何人都可以帮助清理我的配置吗?

nginx
  • 1 个回答
  • 141 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve