Puncte:0

Redirecționarea cauzează eroarea 404 pe nginx

drapel cn

Cum redirecționez dacă un utilizator încearcă să acceseze direct fișierele imagine numai în browser? Vreau să păstrez în continuare capacitatea de a permite site-urilor de socializare să încorporeze imaginile noastre prin hotlinking. Vreau doar dacă un utilizator acces direct imaginea prin browser pentru a redirecționa.

Aceasta este conf. mea 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 {

    nume_server 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;
    Locație / {
        proxy_cache pixstore;
        proxy_cache_revalidate on;
        timeout eroare proxy_cache_use_stale la actualizarea http_500 http_502 http_503 http_504;
        proxy_cache_lock activat;
        add_header X-Cache-Status $upstream_cache_status;
        proxy_pass http://xxx.xxx.xxx.xxx:8090;
        proxy_redirect dezactivat;
        include proxy_params;
        proxy_cache_valid 200 7d;
        proxy_cache_valid 404 5m;
    }

    locație ~ "^/c/600x1200_90_webp/img-master/img/\d+/\d+/\d+/\d+/\d+/\d+/((?<filenum>\d+)[^/]+\.( jpg|png|webp))$" {
    referințe_valide nume_server;
    if ($invalid_referer = "0") {
    returnează 301 http://view.example.com/artwork/$filenum; }
    }

}

jurnalul de erori nginx

2022/01/19 12:09:23 [eroare] 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" a eșuat (2: Nu există un astfel de fișier sau director), client: xxx.xxx.xxx.xxx, server: img.example.com, cerere: „GET /c/600x1200_90_webp/img-master/ img/2021/06/09/00/00/05/90423484_p0_master1200.jpg HTTP/1.1", gazdă: "img.example.com"

Redirecționarea nu funcționează, dar îmi dă o eroare 404 dacă încerc să accesez orice fișier imagine. Am configurat acest lucru ca site proxy invers, așa că nu am definit o cale rădăcină. Cum pot remedia asta?

drapel us
Vă rugăm să includeți configurația completă a nginx așa cum este indicată de `nginx -T`.
drapel jp
Nu editați întrebarea pentru a o transforma într-o întrebare nouă când aveți deja un răspuns. Postează o altă întrebare.
Puncte:0
drapel jp

Deoarece nu ați definit o cale rădăcină pentru locația imaginii nginx folosește cea implicită - /usr/share/nginx/html/. Dacă doriți ca aceste fișiere să fie preluate cu proxy_pass trebuie să copiați configurația pentru proxy_pass si in aceasta locatie.

TravelWhere avatar
drapel cn
Am adăugat proxy_pass la locația imaginii care a remediat eroarea 404, dar nu redirecționează.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.