域“拒绝连接”在 digitalocean droplet 上运行 django 应用程序

域“拒绝连接”在 digitalocean droplet 上运行 django 应用程序

我想在 digitalocean droplet 上部署一个网站。到目前为止,当我访问 IP 地址 123.45.678.910 时,它按预期工作,但当我访问我的域名时,我看到“无法访问此站点,my-site.com 拒绝连接”在 Chrome 上。我可以这样做ping mysite.com,并且可以看到它转到了正确的 IP 地址。

我使用以下方式将我的 Namecheap 域名连接到我的 droplet本教程。我已经等了 24 个小时,我想这段时间应该足够域名传播了。

我在 nginx 错误日志中没有看到任何最新内容。当我检查 droplet 上的 nginx、gunicorn 和 gunicorn.service 的状态时,它们似乎都在运行。

这是我的/etc/nginx/sites-avaliable/my-site

    listen 80;
    listen [::]:80;
    server_name my-site.com 123.45.678.910;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /root/my-site/;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }
}


我尝试使用以下命令安装 SSL 证书:

sudo certbot --nginx -d my-site.com -d www.my-site.com

我认为它没有起作用,但我不确定这是否与它有关。

如果您认为我应该包含更多信息,请告诉我,我以前从未这样做过,因此任何信息都是有帮助的。

谢谢!

编辑:我在 的输出中看到了这一点systemctl status nginx。这只是一个警告(临终遗言),但我想知道这是否可能是原因,因为使用 IP 地址有效,但域名无效。

     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2023-03-22 00:40:42 UTC; 3min 1s ago
       Docs: man:nginx(8)
    Process: 185516 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 185527 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 185528 (nginx)
      Tasks: 2 (limit: 1131)
     Memory: 3.2M
     CGroup: /system.slice/nginx.service
             ├─185528 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             └─185529 nginx: worker process

Mar 22 00:40:42 my-site systemd[1]: Starting A high performance web server and a reverse proxy server...
Mar 22 00:40:42 my-site nginx[185516]: nginx: [warn] conflicting server name "my-site.com" on 0.0.0.0:80, ignored
Mar 22 00:40:42 my-site nginx[185516]: nginx: [warn] conflicting server name "my-site.com" on [::]:80, ignored
Mar 22 00:40:42 my-site nginx[185527]: nginx: [warn] conflicting server name "my-site.com" on 0.0.0.0:80, ignored
Mar 22 00:40:42 my-site nginx[185527]: nginx: [warn] conflicting server name "my-site.com" on [::]:80, ignored
Mar 22 00:40:42 my-site systemd[1]: Started A high performance web server and a reverse proxy server.


答案1

这与防火墙有关。

首先,当我最初尝试运行该certbot命令时,我遇到了奇怪的错误,因此不得不重新安装 pip。我遵循了以下命令:

sudo apt-get update
sudo apt-get install python-certbot-nginx
sudo ufw allow ssh
sudo ufw enable
sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'
sudo ufw status

status 命令显示一切都已允许(目前)。现在我添加我的 SSL 证书:

sudo certbot --nginx -d my-site.com -d www.my-site.com

它会提示您是否希望所有站点都定向到安全访问。

更新防火墙并添加 SSL 证书后,my-site.com 现已上线!:D

相关内容