Điểm:0

How do I correctly configure Nginx XFF?

lá cờ hk

I am trying to follow the directions found here:

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

and referenced here:

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

and here:

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

but I cannot seem to get it right. Here is the relevant Nginx block. Can anyone tell me where I am going wrong?

        location ^~ / {
            try_files $uri @backend;
        }

        location @backend {
            set_real_ip_from  <ip-address>;
            set_real_ip_from  <ip-address>;
            real_ip_header    X-Forwarded-For;
            
            add_header X-Frame-Options "SAMEORIGIN" always;
            add_header X-XSS-Protection "1; mode=block" always;
            add_header X-Content-Type-Options "nosniff" always;
            add_header Referrer-Policy "no-referrer-when-downgrade" always;
            add_header Content-Security-Policy "default-src * data: 'unsafe-eval' 'unsafe-inline'" always;
        }

In the first set of instructions, the author states that NGINX must be compiled with the --with-http_realip_module. But the others put the module into the config file and restart Nginx. The latter did not work for me, but that might be because I do not have the conf file configured correctly. Which is correct and if Nginx needs to be compiled with the module, can anyone point me to instructions on how to do so for Ubuntu 20.04? I have searched and cannot find additional information.

The output of nginx -V is

nginx version: nginx/1.18.0 (Ubuntu)
built with OpenSSL 1.1.1f  31 Mar 2020
TLS SNI support enabled
configure arguments: --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,now -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=dynamic --with-stream=dynamic --with-stream_ssl_module --with-mail=dynamic --with-mail_ssl_module
lá cờ us
Vui lòng thêm đầu ra của `nginx -V` vào câu hỏi. Bạn có chắc là máy chủ ngược dòng của mình gửi địa chỉ IP trong tiêu đề `X-Forwarded-For` không?
user3877654 avatar
lá cờ hk
Xin chào @TeroKilkanen Tôi đã thêm đầu ra của nginx -V ở trên. Tôi không chắc mình hiểu câu hỏi. Tôi muốn chuyển tiếp tất cả lưu lượng truy cập đến một cổng và địa chỉ IP cố định. Địa chỉ có chức năng khi tôi cuộn tròn nó trực tiếp.
lá cờ us
Nginx của bạn có mô-đun `realip` đi kèm. Điều tôi đã hỏi, bạn có chắc là máy chủ kết nối với máy chủ của bạn đang gửi tiêu đề `X-Forwarded-For` mà bạn muốn sử dụng làm địa chỉ IP của khách truy cập, thay vì địa chỉ IP của máy chủ kết nối không? Đây là mục đích của mô-đun realip.
user3877654 avatar
lá cờ hk
Ah. Sau đó, có lẽ tôi đang đọc tài liệu sai. Điều tôi muốn làm là kết nối nginx trên máy chủ của mình với Kubernetes NodePort. Tệp cấu hình của tôi hoạt động khi tôi sử dụng uri, nhưng không thành công khi tôi tham chiếu ipaddress và cổng. Có cách nào để làm việc này không?
lá cờ us
Vui lòng hiển thị đầu ra của `nginx -T` để biết cấu hình đầy đủ.
user3877654 avatar
lá cờ hk
Cố gắng trả lời yêu cầu của bạn, tôi đã tìm ra vấn đề. Tôi đang sử dụng ipad nhưng nginx muốn http:// Nó thành công vượt qua các bài kiểm tra.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.