【问题标题】:Unable to get Http -> Https 301 redirect to work with Nginx无法获取 Http -> Https 301 重定向以使用 Nginx
【发布时间】:2020-11-03 06:32:54
【问题描述】:

不幸的是,我无法让这个 HTTP 重定向到 HTTPS 工作。我正在托管一个 Web 应用程序并使用 PM2 运行它,而 nginx 充当反向代理。当我在监听 80 块内有我的位置/块时我没有问题,但是在使用letsencrypt certbot 后,该站点将无法加载。我在 /var/log/nginx/errors.log 中没有收到任何错误,但在 /var/log/nginx/access.log 中也没有访问记录。 Nginx 语法测试通过。当我查看 Chrome 网络选项卡时,它只显示 301 重定向并且标头是临时的。我使用ubuntu 20.04在ufw上完全打开了端口80和443以及nginx。我在这里想念什么?在下面附加了我的可用站点,并且我有一个指向已启用站点的有效符号链接。

server {
    listen 80;
    listen [::]:80;
    server_name www.example.com;

    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name www.example.com;
    
    ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/www.example.com/chain.pem;

    include /etc/letsencrypt/options-ssl-nginx.conf;

    location / {
        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;
        proxy_pass http://localhost:3000;
    }
}

【问题讨论】:

  • 访问http://www.example.comhttp://example.com时会发生什么
  • @ThanhNguyenVan 页面完全空白,只是尝试加载然后最终超时。最终是谷歌云服务器上有一个外部防火墙阻止了该端口,我无法访问该门户,因为该服务器是由我的雇主提供的。上面的 nginx 配置没有任何问题,所以我会继续发布,以防有​​人需要查看示例:)

标签: ubuntu nginx pm2


【解决方案1】:

我运行它的虚拟服务器是我雇主提供的谷歌云服务器,我最终猜测端口 443 被 GCS 防火墙阻止,这是正确的。以下是调整防火墙的说明:https://cloud.google.com/vpc/docs/using-firewalls

【讨论】:

    猜你喜欢
    • 2019-08-13
    • 1970-01-01
    • 1970-01-01
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-23
    • 1970-01-01
    相关资源
    最近更新 更多