使用nginx重定向错误太多

cgh8pdjw  于 2023-03-07  发布在  Nginx
关注(0)|答案(4)|浏览(214)

我想重定向我所有的http流量重定向到https。我正在使用letsencrypt。我在网上看到return 301 https://$server_name$request_uri;将重定向到我的网站的所有流量到https,但它的结果是ERR_TOO_MANY_REDIRECTS
如果没有上面提到的语句,一切都可以正常工作,但是我必须在URL中特别指定https

server {
        listen 80 default_server;
        listen 443 ssl default_server;

        ssl_certificate /etc/letsencrypt/live/mywebsite.me/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/mywebsite.me/privkey.pem;

        root /home/website/mywebsite/public;

        index index.html index.htm index.php;

        server_name mywebsite.me www.mywebsite.me;

        return 301 https://$server_name$request_uri;

        location / {
                try_files $uri $uri/ /index.php$is_args$args;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
        }
}

我哪里做错了?

bfhwhh0e

bfhwhh0e1#

在我的情况下,它是Cloudflare。我不得不更改为完全SSL加密

eqfvzcg8

eqfvzcg82#

将您的配置更改为以下

server {
        listen 80 default_server;
        server_name mywebsite.me www.mywebsite.me;

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

server {

        listen 443 ssl default_server;

        ssl_certificate /etc/letsencrypt/live/mywebsite.me/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/mywebsite.me/privkey.pem;

        root /home/website/mywebsite/public;

        index index.html index.htm index.php;

        server_name mywebsite.me www.mywebsite.me;

        location / {
                try_files $uri $uri/ /index.php$is_args$args;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
        }
}

你当前的配置在http和https上都重定向到https。所以它变成了一个无限循环,因为return语句。你只想在连接是http时使用return语句。所以你把它分成两个服务器块

exdqitrt

exdqitrt3#

我有同样的问题。我发现了很多问题/答案和文章,但没有帮助。然后我试图从不同的浏览器访问我的网站,它工作得很好!从我的Chrome浏览器删除该高速缓存解决了它。
因此,当您尝试不同的解决方案来清除缓存时,请记住

vh0rcniy

vh0rcniy4#

除了@ZyQux:在Cloudflare上有域,它重定向到另一个VPS提供商,其中Certbot。有循环重定向。为了修复它,我不得不在域的DNS管理中关闭代理(到“DNS only”):

因此,感谢@OritK,因为在Cloudflare上修复后,即使是匿名的Chrome也会在我的网站上显示错误。所以,是的,在FireFox上检查一下

相关问题