デフォルトのサーバーブロックは、Webサイトのファイルがあるサーバーブロックの代わりにロードし続けます。

デフォルトのサーバーブロックは、Webサイトのファイルがあるサーバーブロックの代わりにロードし続けます。

これは Ubuntu に nginx を新しくインストールしたものなので、あまり失敗していません。チュートリアルのほとんどは DigitalOcean の Web サイトから引用したものです。サーバー ブロックを 2 つ設定しました (1 つ目はデフォルト、2 つ目は自分の Web サイト用)。しかし、何らかの問題により、セカンダリ サーバー ブロックにある自分の Web サイトを呼び出しても、デフォルト サーバー ブロックが読み込まれ続けます。自分の Web サイトは yoalfaaz.com で、それを読み込もうとすると、デフォルト サーバーからのファイルが読み込まれます。

さらに明確に言うと、 のファイルは/var/www/html読み込まれ続けるので、代わりに のファイルを読み込みたいのです/var/www/yoalfaaz.com/html

sites-available/yoalfaaz.comファイルはここにあります

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;
        }
}

そして、error.logメッセージは次のようになります

2018/02/18 06:47:02 [error] 28275#28275: *1656 directory index of "/var/www/html/" is forbidden, client: 47.89.22.200, server: [IP for server], request: "GET / HTTP/1.0", host: "www.yoalfaaz.com", referrer: "https://www.yoalfaaz.com"

私もそのコマンドを使用しましたnginx -tが、すべて問題ありませんでした。ここで何が問題なのか教えていただけますか?

答え1

内のファイルへのシンボリックリンクの作成に問題がありました。そのため、コマンドからsites-enabled内のファイルを削除しました。sites-enabled

sudo rm /etc/nginx/sites-enabled/yoalfaaz.com

次に、コマンドを使用してシンボリックリンクを再度作成しました。

sudo ln -s /etc/nginx/sites-available/yoalfaaz.com /etc/nginx/sites-enabled/

そしてすべてが再び機能し始めました。

関連情報