【发布时间】:2020-05-05 19:12:53
【问题描述】:
我正在尝试使用 https 设置 Node.js Express 服务器,为此我正在使用 NGINX 反向代理。我的 VPS 运行的是 Ubuntu 18.04。我将/etc/nginx/sites-enabled/default 中的默认服务器配置更新为此,因此它可以与 SSL 一起使用(如果可以的话):
server {
listen 80 default_server;
listen [::]:80 default_server;
listen 433 ssl default_server;
listen [::]:433 ssl default_server;
ssl_certificate /etc/nginx/fullchain.pem;
ssl_certificate_key /etc/nginx/privkey.pem;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name mediaserver;
location / {
proxy_pass http://localhost: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;
}
}
我跑了sudo systemctl restart nginx 来重启NGINX。
但问题是,当我在没有 https 的情况下访问我的服务器的 IP 地址时,它可以正常打开,但是当我使用 https 访问我的服务器的 IP 地址时,它说无法访问该站点。任何建议的修复?谢谢。
【问题讨论】:
-
你只是路由http流量
proxy_pass http://localhost:3000; -
如何路由 https 流量?我可以使用 https 链接添加另一个代理通行证吗?
-
另外,我应该对 http 和 https 使用 2 种配置,还是只使用 1 种配置,如代码所示?