gpt4 book ai didi

nginx - 是否可以使用带重定向的 nginx 在 HTTP 上托管静态页面,在 HTTPS 上托管 Meteor?

转载 作者:行者123 更新时间:2023-12-03 06:59:26 24 4
gpt4 key购买 nike

我正在为某人开发一个网站,该网站涉及带有一些自定义 Meteor 应用程序的静态信息网站。我希望通过 HTTP 提供静态站点服务,并使用一个 URL 作为重定向到 HTTPS(Meteor 应用程序所在的位置)的重定向。

我尝试了几件事,这是 HTTP 端的最新尝试:

server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;


# Make site accessible from http://localhost/
server_name dev.mysite.com;

location /app {
return 301 https://$http_host$request_uri$is_args$query_string;
}

location / {
root /var/lib/www;
index index.html index.htm;
try_files $uri $uri/ =404;
}
}

这里的想法是,静态站点是从 Blocs 应用程序创建和生成的,并且将包含一个指向 /app 的导航链接,然后该链接将重定向回 HTTPS。我遇到的问题是,一旦浏览器(尝试过 Chrome 和 Firefox)“看到”了 HTTPS 站点,它就根本不会返回到非 HTTPS 站点。任何尝试访问 HTTP 站点的任何 URL 都会迫使您返回 HTTPS。此外,/app 上的重定向似乎不起作用。我正在通过 mupx 部署 Meteor 应用程序,如果有帮助的话。

这个设置是否可能,如果可以,我的配置哪里错了?

最佳答案

我不知道您是否已经解决了这个问题,但就 NGINX 配置而言,这里有一些起点。

当您访问dev.mysite.com/时,它默认为/location block ,并且您的内容将被提供。但是,当您访问dev.mysite.com/app时,它通过 https 返回,因此您需要配置一个额外的服务器 block 来监听 443(或者您可以使用 listen ssl )并在此 block 中设置 root 或 proxy_pass 来提供您的安全内容。

对于导航回非 HTTPS 的情况,您所访问的链接可能指定使用 HTTPS,因此我将从此处开始。此外,您的 URL 可能包含 .../app/...在这种情况下,它将落入 /app location block 并返回 HTTPS。

最后一条评论:

如果您拥有保护 dev.mysite.com 的证书,则通过 HTTPS 提供所有内容可能会更容易。如果您不想这样做,请为您的静态非 HTTPS 站点指定一个不同的子域名,以便链接可以引用该子域名,并且 NGINX 将能够处理它。

关于nginx - 是否可以使用带重定向的 nginx 在 HTTP 上托管静态页面,在 HTTPS 上托管 Meteor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32511236/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com