Рейтинг:0

Редирект вызывает ошибку 404 на nginx

флаг cn

Как перенаправить, если пользователь пытается получить прямой доступ к файлам изображений только в браузере? Я хочу сохранить возможность разрешать сайтам социальных сетей вставлять наши изображения с помощью хотлинков. Я просто хочу, только если пользователь напрямую обращается к изображению с помощью браузера для перенаправления.

Это моя конфиг nginx

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

    имя_сервера img.example.com www.img.example.com;

    журнал_доступа /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;
    место расположения / {
        прокси_кэш пиксстор;
        proxy_cache_revalidate включен;
        proxy_cache_use_stale ошибка тайм-аут обновления http_500 http_502 http_503 http_504;
        proxy_cache_lock включен;
        add_header X-Cache-Status $upstream_cache_status;
        proxy_pass http://xxx.xxx.xxx.xxx:8090;
        прокси_перенаправление выключено;
        включить proxy_params;
        proxy_cache_valid 200 7 дней;
        proxy_cache_valid 404 5 м;
    }

    location ~ "^/c/600x1200_90_webp/img-master/img/\d+/\d+/\d+/\d+/\d+/\d+/((?<filenum>\d+)[^/]+\.( jpg|png|webp))$" {
    действительные_рефереры имена_серверов;
    если ($invalid_referer = "0") {
    вернуть 301 http://view.example.com/artwork/$filenum; }
    }

}

журнал ошибок nginx

19.01.2022, 12:09:23 [ошибка] 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" не удалось (2: Нет такого файла или каталога), клиент: xxx.xxx.xxx.xxx, сервер: img.example.com, запрос: "GET /c/600x1200_90_webp/img-master/ img/2021/06/09/00/00/05/90423484_p0_master1200.jpg HTTP/1.1", хост: "img.example.com"

Перенаправление не работает, но выдает ошибку 404, если я пытаюсь получить доступ к каким-либо файлам изображений. Я настроил это как обратный прокси-сайт, поэтому я не определял корневой путь. Как я могу это исправить?

флаг us
Пожалуйста, включите полную конфигурацию nginx, как показано в `nginx -T`.
флаг jp
Не редактируйте свой вопрос, чтобы сделать его новым вопросом, если у вас уже есть ответ. Напишите еще вопрос.
Рейтинг:0
флаг jp

Поскольку вы не определили корневой путь для расположения изображения нгинкс использует значение по умолчанию - /usr/доля/nginx/html/. Если вы хотите, чтобы эти файлы загружались с помощью proxy_pass вам нужно скопировать конфигурацию для proxy_pass в это место тоже.

TravelWhere avatar
флаг cn
Я добавил proxy_pass в местоположение изображения, что исправило ошибку 404, но не перенаправляет.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.