Заголовок NGiNX обновляется, если клиент предоставит

Наше приложение работает на сервере NGiNX и логика определяет базу данных в соответствии с хостом.

Из последних нескольких в первый день, когда наш клиент переопределяет заголовок host, user-agent и другой заголовок, и NGiNX не может получить точные данные заголовка, и наше приложение сбивается с пути.

GET /api/http.php” _ 200 24 “-” “-” “-” “_” “-” to: 10.0.0.48:8080: 0.014 request_time 0.153

Обычно мы получаем

 /index.php HTTP/1.1” vtermination.com 302 5 “-” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36” “-” “_” “-” to: 10.0.0.27:8080: 0.004 request_time 0.347

Возможно, NGiNX не заменит заголовок, как host и пользовательский агент?

0
задан 21 June 2017 в 14:28
1 ответ

Переменные заголовка устанавливаются HTTP-клиентом, подключающимся к вашему серверу.

nginx никоим образом не отменяет эти заголовки, поэтому ваше приложение должно быть готово получать из них произвольные значения заголовки.

Однако, если вас беспокоит только заголовок HTTP Host , вы можете ограничить, какие запросы nginx будет передавать вашему приложению.

Конфигурация должна выглядеть примерно так:

server {
    listen 443 ssl;
    listen 80;
    server_name example.com;

    ... rest of application and SSL configuration ...
}

server {
    listen 443 ssl default_server;
    listen 80 default_server;

    ... SSL configuration with self-signed keys ...

    return 404;
}

имя_сервера в первом блоке конфигурации заставляет nginx отправлять запросы только этому блоку, когда заголовок Host имеет значение example.com . Вам необходимо изменить свой собственный домен (ы) на эту строку.

Второй блок server используется для всех других значений заголовка Host или для всех запросов без Заголовок хоста . В этом случае мы просто отвечаем с кодом состояния HTTP 404 на каждый запрос.

0
ответ дан 5 December 2019 в 07:58

Теги

Похожие вопросы