Nehmen wir an, ihr richtet einen Nginx als reverse Proxy ein und möchtet nun, dass bestimmte Subdomains, die von anderen Servern durchgeschliffen werden, per Basic Auth “geschützt” werden sollen. Dann werdet ihr wahrscheinlich auf das Problem stoßen, dass ihr immer wieder nach dem Basic Auth Login gefragt werdet und der Reverse Proxy nicht korrekt agiert. Die Lösung ist ganz einfach: ihr müsst verhindern, dass die Basic Auth Header weitergereicht werden. Und das geht so:
server { listen 80; server_name foo.bar.com; access_log /var/log/nginx/foo.access.log; location / { proxy_set_header Authorization ""; # <== das ist die wichtige Zeile, die verhindert, dass Basic Auth weiter gereicht wird! auth_basic "Protected"; auth_basic_user_file /etc/nginx/basic_auth; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host [YOUR_REMOTE_DOMAIN]; proxy_set_header Accept-Encoding ""; proxy_pass [YOUR_REMOTE_URL]; proxy_read_timeout 90; } }
Hallo Martin,
vielen Dank für diesen Tipp! Heute stand ich vor diesem Problem und bin froh deinen Quicktip über Google gefunden zu haben. Funktioniert nun wie erwartet.
Gruß Thomas
Danke!!!!!