Ich habe einen Server mit mehreren Websites, jede mit ihrem eigenen Host.
Gibt es in Nginx eine Möglichkeit, den Zugriff auf 0.0.0.0/0
eine bestimmte IP-Adresse zu blockieren bzw. zuzulassen, beispielsweise 1.2.3.4/32
für eine bestimmte Website (bestimmter Host/Domänenname)?
Zum Beispiel:
- Wenn eine HTTP-Anforderung mit dem Host-Header eingeht,
www.something-public.com
wird alles zugelassen. - Wenn eine HTTP-Anforderung mit dem Host-Header eingeht,
www.something-private.com
lehnen Sie alles ab und lassen Sie eine bestimmte IP-Adresse zu.
Ein weiteres Problem, das ich habe, ist, dass den Websitebesitzern nicht vertraut wird und ich sie durch diese Regel einschränken möchte, indem ich ihnen nicht erlaube, sie über Konfigurationsdateien in den Verzeichnissen der Website zu ändern (z. B. .htaccess
Dateien, die die Einstellungen des übergeordneten Verzeichnisses überschreiben).
Antwort1
Das Modulngx_http_access_moduleverfügt über Zulassungs- und Ablehnungsbefehle, die Sie in Ihre Serverblöcke einfügen können.
server {
server_name www.something-public.com;
allow all; // I think this is the default and the statement is not needed
}
server {
server_name www.something-private.com;
allow 192.168.1.1/32;
deny all;
}