我目前正在嘗試在 Ubuntu 18.04.3 Droplet 上部署我的 Django 應用程式。我正在關注這個教學。
我已成功完成本教程,並且在訪問我的伺服器的 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
我假設某處的代理存在一些問題,或者註冊商未正確重定向到 DigitalOcean,因為存取 DO IP 會直接產生提供靜態檔案的正確結果。
請幫忙!這是一個簡單的作品集網站,我以前從未配置過伺服器。
答案1
有幾點:
伺服器名稱通常應包含您想要用於該伺服器的所有名稱,例如:
server_name example.com www.example.com 165.227.222.0;
您的網域的任何 DNS 記錄都應該有一個「裸」或「裸」A 記錄,指向您的 Nginx 伺服器的 IP:
前任。綁定
example.com. IN A 165.227.222.0 ; A Record for a "base" domain name
如果您使用第三方 DNS,指定此「裸」記錄的方式可能會有所不同。對於 Digital Ocean DNS 服務,這似乎帶有
@
符號。前任。數位海洋「裸」創紀錄