Nginx unterstützt allow
und deny
Syntax, um IPs zu beschränken, z.B. %Code%. Wenn der Datenverkehr jedoch einen Reverse-Proxy durchläuft, verweist die IP auf die IP des Proxys. Wie kann es konfiguriert werden, um eine bestimmte Ursprungs-IP-Adresse aufzulisten und alle anderen eingehenden Anfragen abzulehnen?
remote_addr verweist auf den Proxy, aber Sie können den Proxy konfigurieren, um die Clientadresse mit den Headerfeldern X-Real-IP / X-Forwarded-For zu senden.
Kombiniert mit dem Modul ngx_http_realip können Sie den eingehenden Header so ändern, dass er die echte Clientadresse verwendet remote_addr. Ich glaube, dass dies mit der allow / deny-Syntax wie erwartet funktionieren wird.
Nur zur Verdeutlichung: Die Syntax erlauben / verweigern sollte nach dem Aktivieren und Konfigurieren des Moduls identisch sein. Ersetzen Sie Ihre IP-Adresse und Ihre Proxy-Adresse im Folgenden.
Back-end nginx erlauben / verweigern:
%Vor%Back-End nginx-Realip-Konfiguration:
%Vor%Auf Ihrer nginx-Proxy-Konfiguration:
%Vor%Wenn Sie mehrere Zwischenproxys benötigen, müssen Sie die zusätzlichen Adressen real_ip_recursive und whitelist mit der Anweisung set_real_ip_from aktivieren.