nginx는 포트 80과 443을 모두 제공하지만 항상 포트 80에서 HTTP 404를 반환합니다.

nginx는 포트 80과 443을 모두 제공하지만 항상 포트 80에서 HTTP 404를 반환합니다.

저는 Raspberry Pi 4에서 nginx v1.22.1(Debian Bookworm 기반) 를 실행하고 있습니다. nginx는 Not FoundHTTP/port를 통한 모든 요청에 ​​대해 HTTP 404를 반환합니다 80.

여기에 이미지 설명을 입력하세요.

그러나 HTTPS/port를 통해 모든 것이 잘 작동합니다 443.

이 내 꺼야 /etc/nginx/nginx.conf:

user www-data;
worker_processes auto;
pid /run/nginx.pid;
error_log /var/log/nginx/error.log;
include /etc/nginx/modules-enabled/*.conf;

events {
        worker_connections 768;
}

http {
        sendfile on;
        tcp_nopush on;
        types_hash_max_size 2048;
        include /etc/nginx/mime.types;
        default_type application/octet-stream;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
        ssl_prefer_server_ciphers on;
        access_log /var/log/nginx/access.log;
        gzip on;
        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}

이것은 내가 구성한 웹사이트입니다 etc/nginx/sites-enabled/myraspi.conf:

server {
    listen 80;

    location /hello {
        add_header Content-Type text/html;
        return 200 'Here I am!';
    }
}

server {
    listen 443 ssl;
    ssl_certificate /etc/ssl/certs/myraspi.fritz.box.crt;
    ssl_certificate_key /etc/nginx/ssl/certificates/myraspi.fritz.box.pem;

    location /world {
        add_header Content-Type text/html;
        return 200 'Here I am!';
    }
}

전화를 걸 수는 있지만 HTTPS GET myraspi/world작동하지 않습니다 HTTP GET myraspi/hello. 하지만 오류 페이지에 nginx 바닥글이 포함되어 있어 nginx 구성 문제인 것으로 보입니다.

nginx가 두 포트 모두에서 수신 대기하는지 확인했습니다. 상황은 다음과 같습니다.

myuser@myraspi:/etc/nginx $ sudo netstat -nlp | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1972636/nginx: mast
tcp6       0      0 :::80                   :::*                    LISTEN      1972636/nginx: mast

myuser@myraspi:/etc/nginx $ sudo netstat -nlp | grep 443
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      1972636/nginx: mast

구성 확인 sudo nginx -t도 성공합니다.

myuser@myraspi:/etc/nginx $ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

오류 로그에는 /var/log/nginx/error.log오류가 포함되어 있지 않으며 액세스 로그에 /var/log/nginx/access.log들어오는 요청이 표시됩니다.

<<my IPv6 IP address>> - - [30/Mar/2024:13:35:03 +0100] "GET /hello HTTP/1.1" 404 125 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:124.0) Gecko/20100101 Firefox/124.0"

무엇이 잘못될 수 있는지에 대한 아이디어가 있나요?

감사해요!

답변1

etc/nginx/sites-enabled/myraspi.confIPv6 지원을 추가 하려면 다음 줄을 추가해야 했습니다 .

server {
    listen 80;
    listen [::]:80;

    location /hello {
        add_header Content-Type text/html;
        return 200 'Here I am!';
    }
}

관련 정보