nginx를 사용하면 홈페이지 이외의 웹사이트 페이지가 열리지 않습니다.

nginx를 사용하면 홈페이지 이외의 웹사이트 페이지가 열리지 않습니다.

nginx 서버 블록에 웹사이트를 설정했는데 정상적으로 로드됩니다. 그런데 홈페이지가 아닌 다른 웹페이지를 열려고 하면 바로 404 Not Found 메시지가 뜹니다. 이로 인해 홈페이지 외에 다른 페이지는 볼 수 없습니다.

여기 sites-available파일이 있습니다.

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

        root /var/www/yoalfaaz.com/html;

        # Add index.php to the list if you are using PHP
        index index.php index.html index.htm index.nginx-debian.html;

        server_name yoalfaaz.com www.yoalfaaz.com;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #

        location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }

        location ~ /\.ht {
        deny all;
        }
}

페이지가 하나도 열리지 않는 문제가 무엇인지 알려주실 수 있나요? 나는 또한 사용했고 nginx -t모든 것이 성공적으로 진행되었으며 error.log 파일에 오류가 없습니다.

답변1

location여기에서 블록을 변경하세요

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}

이에

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    fastcgi_index index.php;
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
    # only uncomment the next line, if not set in fastcgi-php.conf already
    # fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
}

그런데 페이지에 또 다른 문제가 있는 것 같습니다. 파일의 연결 시간 초과를 확인하세요.https://www.yoalfaaz.com/yoimg/yoalfaaz.png

답변2

그 길들존재하지 않음파일 시스템의 파일로. 이는 웹 애플리케이션에 의해 처리됩니다. 그러나 실제로는 에서 라우팅하지 않습니다 try_files. 대신 404 페이지로 라우팅하고 있습니다.

                try_files $uri $uri/ =404;

대신 정적 파일이 아닌 요청을 웹 애플리케이션으로 라우팅해야 합니다. 예를 들어:

                try_files $uri $uri/ /index.php$is_args$args;

관련 정보