現在、DjangoアプリをUbuntu 18.04.3のドロップレットにデプロイしようとしています。私はこれに従っていますチュートリアル。
チュートリアルは無事完了し、サーバーのIPと「www.domainname.com」にアクセスするとアプリが起動します。しかし、「www」なしでドメインのアドレス「domainname.com」にアクセスしようとすると、
接続を拒否しました。
前に述べたように、IP アドレスに直接アクセスすると、100% 正しく表示され、アプリの静的ファイルが提供されます。
チュートリアルの他の部分はすべてエラーなく正しく完了したので、NGINX の設定に関係していると思われます。
私の NGINX サーバー ブロックは次のとおりです/etc/nginx/sites-available/mysite
:
server {
listen 80;
server_name 165.227.222.0;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/ethan/cfsite/cfsite;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
}
のデフォルト サーバー ブロックは、/etc/nginx/sites-available/default
にシンボリック リンクされていると読んだので、完全にコメント アウトしました/etc/nginx/sites-enabled/
。
私がこれを受け取ったときsudo tail -F /var/log/nginx/error.log
:
2019/09/26 14:25:58 [alert] 6680#6680: *3 open socket #3 left in connection 4
2019/09/26 14:25:58 [alert] 6680#6680: aborting
DO IP に直接アクセスすると静的ファイルが提供される正しい結果が得られることから、どこかのプロキシに問題があるか、レジストラが DigitalOcean に正しくリダイレクトしていないと想定しています。
助けてください!シンプルなポートフォリオのウェブサイトですが、これまでサーバーを設定したことはありません。
答え1
いくつかのポイント:
サーバーの名前通常、そのサーバーに使用するすべての名前を含める必要があります。例:
server_name example.com www.example.com 165.227.222.0;
ドメインの DNS レコードには、Nginx サーバーの IP を指す「ベア」または「ネイキッド」の A レコードが必要です。
例: BIND
example.com. IN A 165.227.222.0 ; A Record for a "base" domain name
DNS にサードパーティを使用している場合、この「ベア」レコードの指定方法は異なる場合があります。Digital Ocean DNS サービスの場合、これは 記号で表示されます
@
。ex. Digital Ocean「Bare」Aレコード