
Ich frage mich, ob ich Hilfe bekommen könnte. Ich kann keine benutzerdefinierte 403-Seite bereitstellen. Ich verwende das GeoIP-Modul, um einige IP-Adressen zu blockieren. Ich muss eine benutzerdefinierte XML-Datei als 403 bereitstellen. Mein Problem ist, dass ich, obwohl ich alles gemäß den Anweisungen eingerichtet habe (glaube ich), immer noch die Standard-403-Seite von Nginx erhalte. Bitte sehen Sie sich meine /etc/nginx/sites-enabled/default an und sagen Sie mir, was nicht stimmt.
.....
###redirect IP_1
geo $bad_user {
default 0;
bad.ip.1/32 1;
bad.ip.2/32 1;
}
server {
....
####custom 403 error page for ip block
error_page 403 /error.xml;
location = /error.xml {
root /var/www/static;
allow all;
}
####redirect IP_2
if ($bad_user) {
return 403;
}
Ich habe überprüft, dass Verzeichnisse und XML-Dateien die richtigen Berechtigungen haben. Ich kann auf die Datei error.xml zugreifen, wenn ich die GeoIP-Sperre deaktiviere. Bitte lassen Sie mich wissen, wenn Sie Gedanken, Ideen oder andere Informationen haben, die ich bereitstellen kann.
Vielen Dank für Ihre Hilfe
Antwort1
Wir konnten das Problem lösen. Die Fehlerseite und „if bad user“ mussten im Serverblock sein. Hoffe, das hilft jemand anderem weiter. Danke für die Hilfe.
server {
listen 80; ## listen for ipv4
listen [::]:80 default ipv6only=on; ## listen for ipv6
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
location / {
root /var/www;
index index.html index.htm;
allow all;
error_page 403 /error.xml;
if ($bad_user) {
return 403;
}
}
...
}