Цифровой балансировщик нагрузки Ocean с http на https с 301 вместо 307 - PullRequest
0 голосов
/ 16 июня 2020

В моей настройке у меня есть балансировщик нагрузки DigitalOcean, подключенный только к одной капле (на данный момент), работающей на nginx. Я управляю своим SSL-сертификатом с помощью балансировщика нагрузки через SSL Termination . Балансировщик нагрузки имеет следующие правила переадресации:

HTTP на порту 80 -> HTTP на порту 80

HTTP2 на порту 443 -> HTTP на порту 80

Есть возможность для балансировщика нагрузки перенаправлять HTTP на HTTPS. Но если я использую этот вариант, он использует перенаправление 307 вместо 301. Согласно DigitalOcean, это предназначено. Мне сказали по причинам Seo, что он должен использовать 301. Я попытался отключить эту опцию и перенаправить с использованием конфигураций nginx, но в итоге я оказался в бесконечности l oop. Я использовал следующие фрагменты:

server {
        listen 80;
        server_name _;
        # $scheme will get the http protocol
        # and 301 is best practice for tablet, phone, desktop and seo
        return 301 https://$host$request_uri;
}

Кто-нибудь знает, как правильно справиться с этой ситуацией? Любая помощь будет принята с благодарностью.

Ура, Раф

1 Ответ

1 голос
/ 16 июня 2020

Я действительно понял, что могу предотвратить l oop, добавив

if ($http_x_forwarded_proto = "http") {
  return 301 https://$host$request_uri;
}

, как предлагается в этом сообщении

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...