我有一个在端口 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
我修复了这个问题。