无法通过 HTTPS 访问 Node.js 应用程序

无法通过 HTTPS 访问 Node.js 应用程序

我有一个在端口 3000 上运行的 node.js 应用程序。

在它前面我运行一个 nginx 反向代理。它在端口 80 上运行良好。我尝试使用 certbot 安装证书。现在我有了证书并设置了我的代理以将所有非 HTTPS 流量重定向到 HTTPS,并在端口 443 上监听它并将我的连接传递给我的应用程序。不知何故我的浏览器处于挂起状态,我不知道为什么。

这里我添加了 2 个服务器块:

server {

    server_name mywebsite.at www.mywebsite.at;
    listen 443 ssl;

    ssl_certificate /etc/letsencrypt/live/mywebsite.at/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mywebsite.at/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
     }
}
server {

    server_name mywebsite.at www.mywebsite.at;
    listen 80;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
     }
}

在这种情况下我可以输入http://mywebsite.at但我无法进入https://mywebsite.at。显示“无法访问网站”。知道为什么会出现此错误吗?

我已经运行过,sudo nginx -t没有错误。如果我写入,netstat -plnt | grep 443我会得到:

tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 20003/nginx: master

有人能帮我吗?

答案1

我找到了问题所在。443 端口被阻止了,ufw allow 443我修复了这个问题。

相关内容