Obraz z określonej domeny na moim serwerze Nginx ładuje się dobrze w przeglądarce, ale 404, gdy się zwijam

0

Cześć, walczyłem z tym przez ostatni dzień i potrzebuję pomocy.

Zasadniczo mam dwa obrazy przechowywane w mojej głównej domenie i subdomenie w nginx.

http://orgasmal.com/r.png (SFW)

http://assets.orgasmal.com/e.gif (SFW)

oba ładują się dobrze w przeglądarce, co jest dobre. Jedynym problemem jest to, że gdy zwinę główną domenę, zwraca ona 404.

curl -I http://orgasmal.com/r.png
HTTP/1.1 404 Not Found
Server: nginx/1.6.3
Date: Mon, 29 Aug 2016 18:52:07 GMT
Content-Type: text/html
Content-Length: 168
Connection: keep-alive

Ale kiedy zwijałem subdomenę, działa ona zgodnie z oczekiwaniami.

curl -I http://assets.orgasmal.com/e.gif
HTTP/1.1 200 OK
Server: nginx/1.6.3
Date: Mon, 29 Aug 2016 18:53:05 GMT
Content-Type: image/gif
Content-Length: 145
Last-Modified: Mon, 29 Aug 2016 05:34:06 GMT
Connection: keep-alive
ETag: "57c3c94e-91"
Accept-Ranges: bytes

Próbowałem prawie wszystkiego, aby spróbować, aby to zadziałało, nawet bloki serwera w moim pliku .conf są takie same, ale nadal daje 404 obrazowi głównej domeny. Każda pomoc będzie mile widziana.

server {
    listen   80;
    server_name  orgasmal.com;

    # note that these lines are originally from the "location /" block
    root   /var/www/orgasm;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
     error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }
}

server {
    listen   80;
    server_name  assets.orgasmal.com;

    # note that these lines are originally from the "location /" block
    root   /var/www/img;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
     error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }
}

Katalogi są również takie same

drwxr-xr-x 2 nginx nginx 4096 Jul 18 11:30 cgi-bin
drwxr-xr-x 2 nginx nginx 4096 Jul 18 11:30 html
drwxr-xr-x 2 nginx nginx 4096 Aug 29 14:00 img
drwxr-xr-x 2 nginx nginx 4096 Aug 29 14:00 orgasm

EDYTOWAĆ

Sprawdziłem dzienniki błędów nginx i wygląda na to, że ma to coś wspólnego z problemem, który mam. Błąd 403 jest oczekiwany, ale dwa błędy powyżej wydają się być dziwnym przekierowaniem, które go psuje. Nie jestem pewien, jak to naprawić, ale wydaje się, że to jest problem.

2016/08/29 16:23:35 [error] 28032#0: *53 open() "/usr/share/nginx/html/r.png" failed (2: No such file or directory), client: MY IP, server: _, request: "HEAD /r.png HTTP/1.1", host: "orgasmal.com"
2016/08/29 16:24:01 [error] 28032#0: *54 open() "/usr/share/nginx/html/r.png" failed (2: No such file or directory), client: MY IP, server: _, request: "HEAD /r.png HTTP/1.1", host: "orgasmal.com"
2016/08/29 16:24:48 [error] 28032#0: *55 directory index of "/var/www/orgasm/" is forbidden, client: MY IP, server: orgasmal.com, request: "GET / HTTP/1.1", host: "orgasmal.com"
KENNER
źródło

Odpowiedzi:

0

Podejrzewam, że to twój klient, ponieważ działa dobrze, gdy zwijam się z mojego serwera AWS.

curl -I  http://orgasmal.com/r.png
HTTP/1.1 200 OK
Server: nginx/1.6.3
Date: Mon, 29 Aug 2016 19:53:45 GMT
Content-Type: image/png
Content-Length: 224603
Last-Modified: Mon, 29 Aug 2016 17:41:59 GMT
Connection: keep-alive
ETag: "57c473e7-36d5b"
Accept-Ranges: bytes

Działa również dobrze z webpagetest - kliknij, aby zobaczyć wynik.

Zwijanie subdomen również działa dobrze. Nie jestem jednak gra, aby kliknąć link z komputera, na którym jestem.

Zaktualizuj po dostarczeniu dzienników

Odnośnie tej konfiguracji

error_page 500 502 503 504 /50x.html;
location = /50x.html {
    root /usr/share/nginx/html;
}

Dyrektywa error_page mówi „jeśli wystąpi błąd 500, poszukaj strony 50x.html”. Reguła lokalizacji mówi „zamiast szukać statycznej strony HTML, poszukaj pliku żądanego w katalogu / usr / share / nginx / htm”. Ten wpis dziennika potwierdza, że ​​tak się dzieje.

"/usr/share/nginx/html/r.png" failed (2: No such file or directory)

To dość dziwna konfiguracja. Całkowicie go usunę i po prostu pozwolę dyrektywie error_page i jej lokalizacji całkowicie, a serwer po prostu odeśle odpowiednie kody błędów, gdy znajdzie błędy.

Tim
źródło
Wow, masz rację. Zastanawiam się, dlaczego to robiło ... dziwne. W każdym razie dzięki za pomoc.
KENNER,
Nie można powiedzieć. Jeśli to się powtórzy, sprawdź dzienniki błędów serwera WWW, mogą one zawierać przydatne informacje.
Tim
Zaczekaj, sprawdziłem moje dzienniki błędów Nginx i uwzględniłem błędy, powyżej których wyglądają, jakby były częścią problemu. Co z tego zrobisz?
KENNER,
Zobacz zaktualizowaną odpowiedź na pytanie.
Tim
0

Jaki był problem

Ten blok serwera w /etc/nginx/nginx.conf był trochę nieuporządkowany, więc go usunąłem i wszystko działa teraz idealnie.

 server {
    listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
                root   /usr/share/nginx/html;
        index  index.html index.htm;
         }

        error_page 404 /404.html;
            location = /40x.html {
        }

    error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

Od mojego klienta

curl -I http://orgasmal.com/r.png
HTTP/1.1 200 OK
Server: nginx/1.6.3
Date: Mon, 29 Aug 2016 21:11:53 GMT
Content-Type: image/png
Content-Length: 224603
Last-Modified: Mon, 29 Aug 2016 17:41:59 GMT
Connection: keep-alive
ETag: "57c473e7-36d5b"
Accept-Ranges: bytes
KENNER
źródło