nginx - proxy_pass с возвратом 301 редиректа - PullRequest
0 голосов
/ 03 августа 2020

Я создаю свою конфигурацию nginx с помощью автоматических инструментов, таких как nginx -proxy на docker. Там они позволили мне добавить настраиваемую строку внутри директивы location.

Просто я хочу, чтобы www.example.com был перенаправлен 301 на example.com, или, как правило, оба http://www.example.com и https://www.example.com должны быть 301 перенаправлен на https://example.com.

Результат автоматического создания конфигурации как таковой:

server {
    ...
    server_name www.example.com;
    listen 443 ssl http2 ;

    location / {
        proxy_pass http://<upstream>;
        return 301 $scheme://example.com;
    }
}

Я заметил, что перед return 301 ... есть синтаксис proxy_pass, и, поскольку его создание автоматизировано, Я не думаю, что смогу легко изменить это (т.е. сделать так, чтобы return 301 появлялся перед синтаксисом proxy_pass.

From nginx документация :

proxy_pass

Устанавливает протокол и адрес проксируемого сервера и необязательный URI, с которым должно быть сопоставлено местоположение.

Итак, nginx - разумный вопрос, поскольку он сказал "устанавливает", будет ли перенаправление 301 выполнено правильно, даже если перенаправление произошло после синтаксиса proxy_pass?

1 Ответ

0 голосов
/ 04 августа 2020

Из комментария Ричарда Смита сказано, что синтаксис return будет оцениваться первым и, следовательно, proxy_pass полностью игнорируется.

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