Forge によってプロビジョニングされた DO サーバーにサイトを転送しました。SSL 証明書をインストールしましたが、 https ://www.example.com に移動すると Server Not Found エラーが発生し、http://example.comでは200 が返されることに気付きました。Nginx 構成ファイルで非 WWW を強制しようとしましたしかし、何も機能しないようです。また、試行ごとにNginxを再起動しました。
これが私の現在のNginx設定ファイルです:
server {
listen 80;
server_name example.com;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl;
server_name .example.com;
root /home/forge/default/current/public;
# FORGE SSL (DO NOT REMOVE!)
ssl_certificate /etc/nginx/ssl/default/56210/server.crt;
ssl_certificate_key /etc/nginx/ssl/default/56210/server.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/default-error.log error;
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
サーバーは、デフォルトのサイト (example.com ではなくデフォルト) でセットアップされました。サイトを本番環境に立ち上げてSSL証明書をインストールした後、これに気付きました.事後にこれを変更しようとすることで、ダウンタイムを回避しようとしています. デフォルトと呼ばれるサイトがここで違いを生むかどうかはわかりませんが、注目すべき重要な点です.
したがって、https:// またはhttp://example.comは正常に機能します。www.example.com は、テストしたすべてのブラウザで Server Not Found エラーを返します。また、/etc/nginx/sites-enabled に www.default ファイルがあることに気付き、次のように変更して nginx を再起動してみました。
server {
listen 80;
server_name www.example.com;
return 301 $scheme://example.com/$request_uri;
}
何があってもサーバーが見つかりません。Chrome でのエラーは次のとおりです。
DNS ルックアップに失敗したため、www.example.com のサーバーが見つかりません。DNS は、Web サイトの名前をそのインターネット アドレスに変換するネットワーク サービスです。このエラーは、ほとんどの場合、インターネットに接続していないか、ネットワークが正しく構成されていないことが原因で発生します。DNS サーバーが応答していないか、ファイアウォールが Google Chrome のネットワークへのアクセスを妨げていることが原因である可能性もあります。