Nginx は www.myserver.org 以外には対応しません

Nginx は www.myserver.org 以外には対応しません

によるnginx ドキュメント、以下のサーバーブロックは両方で機能するはずですhttps://joycegroup.orgそしてhttps://www.joycegroup.org

server {

listen 443 ssl;

ssl_certificate /etc/ssl/certs/joycegroup_org_chain.crt;

ssl_certificate_key /etc/ssl/private/joycegroup_org.key;

root /var/www/joycegroup_org/;

server_name joycegroup.org www.joycegroup.org;

location / {
index index.html index.htm index.html index.php;
}

}

それはhttps://www.joycegroup.org、 ないhttps://joycegroup.org何が間違っているのでしょうか?

最終的には http を https にリダイレクトすることも必要ですが、まずはこの問題を解決しようとしています。

基本的な質問で申し訳ありません。何時間も頭を壁にぶつけていました。

答え1

ジョイスグループそれだけでは、joycegroup.org (www なし) が有効な DNS レコードであることを意味するわけではありません。

ドメインのルートにCNAMEレコードを設定することはできないことに注意してください(CNAME レコードをドメインの頂点 (ルート) で使用できないのはなぜですか?) の場合は、A レコードが必要です。

DNS 解決の問題であることは、 などのさまざまな方法で示せますcurl https://joycegroup.org。 が表示される場合curl: (6) Could not resolve host: joycegroup.com; Name or service not known、それは DNS の問題です。

さらに、両方のケースで nslookup または host または dig を実行し、出力を比較することで、2 つのレコードの違いに関連する DNS の問題であることを確認できます。

いくつかの例:

  • host(Linux):
$ host <record with www>

<record with www> has address 192.168.1.10

$ host <record without www>

<no output is shown>

  • nslookup(Linux):
$ nslookup <record without www>
Server:         <dns server ip>
Address:        <dns server ip>#53

*** Can't find <record without www>: No answer

$ nslookup <record with www>

Server:         <dns server ip>
Address:        <dns server ip>#53

Name:   <record with www>
Address: 192.168.1.10
  • nslookup(ウィンドウズ):
C:\Users\myuser> nslookup <record without www>

Server:  <dns server>
Address:  <dns server ip>

Name:    <record without www>

IP アドレスは表示されないことに注意してください。各ゾーンには独自のレコードがあるため、何かが返されますが、これは A レコード (IP アドレスに関連付けられている) ではなく、SOA レコードです。

一方、実際に存在する A レコードを照会すると、次のような典型的な応答が返されます。

C:\Users\myuser>nslookup <record with www>

Server:  <dns server>
Address:  <dns server ip>

Name:    <record with www>
Address:  192.168.1.10

答え2

の回答のとおりA. Darwin、 の DNS レコードが設定されていませんjoycegroup.org:

c-nan@mba-c-nan ~ % dig www.joycegroup.org A +short  
50.116.60.151
c-nan@mba-c-nan ~ % dig joycegroup.org A +short    
c-nan@mba-c-nan ~ % 

次のDNS Aレコードを追加する必要があります

joycegroup.org  IN  A   50.116.60.151

DNSプロバイダーで:

c-nan@mba-c-nan ~ % dig joycegroup.org NS +short
dns1.registrar-servers.com.
dns2.registrar-servers.com.
c-nan@mba-c-nan ~ % 

すべての http トラフィックを https にリダイレクトする場合は、次のように設定します。

server {
    listen 80 default_server;
    server_name _;
    return 301 https://$host$request_uri;
}

ドメインを指定するには、次を使用できます。

server {
    listen 80;
    server_name www.joycegroup.com joycegroup.com;
    return 301 https://joycegroup.com$request_uri;
}

関連情報