Может кто-нибудь объяснить, почему они говорят это в документации по nginx? Почему это "громоздко и неэффективно"?

Перенаправление на основной сайт

Люди, которые в течение своего общего хостинга использовали для настройки всего, используя только файлы Apache .htaccess, обычно переводят следующие правила:

RewriteCond  %{HTTP_HOST}  nginx.org
RewriteRule  (.*)          http://www.nginx.org$1
to something like this:

server {
    listen       80;
    server_name  www.nginx.org  nginx.org;
    if ($http_host = nginx.org) {
        rewrite  (.*)  http://www.nginx.org$1;
    }
    ...
}

Это неправильный, громоздкий и неэффективный способ. Правильный путь - определить отдельный сервер для nginx.org:

server {
    listen       80;
    server_name  nginx.org;
    return       301 http://www.nginx.org$request_uri;
}

server {
    listen       80;
    server_name  www.nginx.org;
    ...
}

1 ответ1

1

Потому что каждый раз, когда вы заходите на сайт в первом варианте, он будет перепроверять заголовок хоста, перенаправить вас или нет. а на втором этого не произойдет, послав несколько циклов ЦП на мусор.

:)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .