
Ich möchte die Benutzer mit Nginx-Konfiguration zu verschiedenen Webdiensten weiterleiten.
Das Szenario ist für die internen Benutzer mit dem Hostnamen von 192.168.1.1
bis 192.168.1.255
gedacht. Ich möchte ihnen einen Webdienst bereitstellen, für die anderen externen Besucher möchte ich jedoch nicht, dass dies realisiert wird.
Ich weiß, dass ich IP_TABLES
diese Funktion aktivieren könnte, aber ich verwende IP_TABLE-Regeln hauptsächlich für Firewall-Zwecke und möchte sie nicht mit dieser Konfiguration vermischen.
Steht mir darin irgendeine Konfiguration zur Verfügung nginx.conf
?
Antwort1
Sie können das GEO-Modul zusammen mit einer Kartendirektive verwenden:
http {
geo $special_service {
default 0;
192.168.1.0/24 1;
}
server {
if ($special_service) {
return 302 $scheme://$server_name/special-service/;
}
}
}
Antwort2
Erstellen Sie einen separaten location
Block, der Ihre vertraulichen Inhalte abdeckt.
Bedenken Sie, dass Konfigurationsanweisungen nicht übernommen werden. Sie müssen in den neuen Block alles aufnehmen, was sich am vorhandenen Speicherort befindet und für Ihren Inhalt benötigt wird.
location /path/to/sensitive/stuff {
# any other config that you need goes here..
# ...
allow 192.168.1.0/24;
deny all;
}