Рейтинг:0

Как правильно настроить Nginx XFF?

флаг hk

Я пытаюсь следовать указаниям, найденным здесь:

https://nginx.org/en/docs/http/ngx_http_realip_module.html

и ссылка здесь:

https://www.loadbalancer.org/blog/nginx-and-x-forwarded-for-header/

и здесь:

https://stackoverflow.com/questions/43689588/how-to-set-up-realip-module-in-nginx

но я не могу понять это правильно. Вот соответствующий блок Nginx. Может ли кто-нибудь сказать мне, где я ошибаюсь?

        местоположение ^~ / {
            try_files $uri @backend;
        }

        местоположение @backend {
            set_real_ip_from <ip-адрес>;
            set_real_ip_from <ip-адрес>;
            real_ip_header X-Forwarded-For;
            
            add_header X-Frame-Options «SAMEORIGIN» всегда;
            add_header X-XSS-Защита "1; режим = блок" всегда;
            add_header X-Content-Type-Options «нюхать» всегда;
            add_header Referrer-Policy «без реферера при понижении» всегда;
            add_header Content-Security-Policy "default-src * data: 'unsafe-eval' 'unsafe-inline'" всегда;
        }

В первом наборе инструкций автор указывает, что NGINX должен быть скомпилирован с модулем --with-http_realip_module. Но остальные помещают модуль в файл конфигурации и перезапускают Nginx. Последнее у меня не сработало, но это может быть потому, что у меня неправильно настроен файл conf. Что правильно, и если Nginx необходимо скомпилировать с модулем, может ли кто-нибудь указать мне инструкции о том, как это сделать для Ubuntu 20.04? Я искал и не могу найти дополнительную информацию.

Вывод nginx -V

версия nginx: nginx/1.18.0 (Ubuntu)
построено с OpenSSL 1.1.1f 31 марта 2020 г.
Поддержка TLS SNI включена
настроить аргументы: --with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-KTLRnK/nginx-1.18.0=.-fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl ,-z,теперь -fPIC' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path= /usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http- proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-compat --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with -http_slice_module --with-threads --with-http_addition_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_xslt_module=динамический --with-stream=динамический --with-stream_ssl_module --with-mail=динамический --with-mail_ssl_module
флаг us
Пожалуйста, добавьте вывод `nginx -V` к вопросу. Вы уверены, что ваш вышестоящий сервер отправляет IP-адрес в заголовке X-Forwarded-For?
user3877654 avatar
флаг hk
Привет @TeroKilkanen Я добавил вывод nginx -V выше. Я не уверен, что понимаю вопрос. Я хочу перенаправить весь трафик на фиксированный IP-адрес и порт. Адрес работает, когда я скручиваю его напрямую.
флаг us
В ваш nginx включен модуль `realip`. Что я спросил, вы уверены, что сервер, который подключается к вашему серверу, отправляет заголовок «X-Forwarded-For», который вы хотите использовать в качестве IP-адреса посетителя, вместо IP-адреса подключающегося сервера? Это цель модуля realip.
user3877654 avatar
флаг hk
Ах. Тогда, возможно, я неправильно читаю документацию. Что я хочу сделать, так это подключить nginx на моем сервере к Kubernetes NodePort. Мой файл конфигурации работает, когда я использую uri, но не работает, когда я ссылаюсь на IP-адрес и порт. Есть ли способ сделать это?
флаг us
Пожалуйста, покажите вывод `nginx -T` для полной конфигурации.
user3877654 avatar
флаг hk
D'oh, пытаясь ответить на ваш запрос, я обнаружил проблему. Я использовал IP-адрес, но nginx хотел http:// Он успешно проходит испытания.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.