nginx özel üstbilgiyi geçiyor


13

Aşağıdaki örneğim var

           location / {
                    proxy_read_timeout 2000;
                    proxy_next_upstream error;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header Host $http_host;
                    proxy_pass_header X_CUSTOM_HEADER;
                    proxy_redirect off;
                    proxy_max_temp_file_size 0;
                    proxy_pass https://prod;
                    break;
            }

Şimdi aşağıdaki kıvrılma çizgisini kullandığımda

curl --head -H "X_CUSTOM_HEADER: foo" http://domain.com/api/test

Şimdi bu çalışmıyor .. Arka uçtaki apache / php üstbilgiyi görmüyor. Eğer nginx'i atlarsam çalışır

curl --head -H "X_CUSTOM_HEADER: foo" http://web1.domain.com/api/test

Yanıtlar:



2

proxy_set_headerArka uç sunucularına iletmek istediğiniz tüm üstbilgiler için kullanmalısınız . Yani proxy_pass_header ...satır yerine :

proxy_set_header X_CUSTOM_HEADER $http_x_custom_header;

Bunu denedim ve doğru başlığı ayarlamaz, Eğer $ http_x_custom_header "foo" ile değiştirirseniz çalışır
Mike

@Mike için neden işe yaramadığından emin değilim ama benim için işe yaradı. $ Http_x_forwarded_proto ile X-Forwarded-Proto kullanıyorum.
Tyler Collier

2

Yukarıda da benim için işe yaramadı bu yüzden kullandım proxy_pass_header. Burada proxy_pass_header ile ilgili Nginx Wiki'ye bakın .

Eğer özel başlığıdır device_ideklemek proxy_pass_header device_id;için proxy bloğuna.

İçinde alt çizgi olan customheaders kullanıyorsanız (benim gibi) underscores_in_headers onNginx Config'inizde bulunduğundan emin olun .


Çok teşekkürler ! Saçımı çekiyordum .... Mesajın beni rahatlattı ....
Fahad Ahammed

1

Varsayılan olarak nginx tüm ( proxy_pass_request_headers on; ) üstbilgilerini arka uç sunucusuna iletir . Ancak istek üstbilginiz (özel üstbilgi olabilir) başlık adında alt çizgi (_) içeriyorsa, nginx bu üstbilgileri engeller.

Ex: authenticate_type, cdn_enable.

Nginx'in tüm veya özel istenen üstbilgiyi arka uca geçirmesini sağlamak için alt çizgi seçeneğini açın.

underscores_in_headers on;
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.