如何配置 nginx 以在主要使用 https 的网站上拥有一个 http 页面?

如何配置 nginx 以在主要使用 https 的网站上拥有一个 http 页面?

我最近将我的纯客户端网站从http移至https,现在用户有了一个新的网站本地存储https://...。我没有用户 ID,也不认为有必要实现它们来将 http 存储信息存储在服务器上。但我阅读了如何http在页面上创建隐藏的 iframehttps并使用其信息将http本地存储迁移到新https页面。

我尝试了这个配置,但一切仍然出现如下情况https



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

     location / {
         if ($request_uri = "/http-stats.html") {
            return 200 http://$host$request_uri;
         }
         return 301 https://$host$request_uri;
     }
  }

not我在 nginx 文档中没有看到指令。有没有合理的方法可以做到这一点?

答案1

可以让 Nginx 同时监听端口 80(HTTP)和端口 443(HTTPS)。

这是帖子中接受的答案 Nginx 服务器同时有HTTP和HTTPS,浏览器选择HTTP

事实证明,可以同时拥有 HTTP 和 HTTPS 服务器,并默认选择 HTTPS。我只需要将 conf 文件中的两个服务器混合在一起,就像这样:

server {
    listen 80;
    listen 443 default_server ssl;

    ssl_certificate certificate.crt;
    ssl_certificate_key server.key;

    server_name server.com;
    server_name *.server.com;
    client_max_body_size 0;
    charset utf-8;
    ...
}

相关内容