nginx verwendet remote_addr, um IPv6 zu erhalten

nginx verwendet remote_addr, um IPv6 zu erhalten

Da ich keine IPv6-Adresse zum Arbeiten habe.

Wenn ich einen Serverblock wie diesen hätte:

server{
    listen [::]:80 ipv6only=on;

    root /some/root;
    server_name some.name;
    index some_index.html;
    location / {
        return "$remote_addr";
    }
}

Würde dies die IPv6-Adresse zurückgeben? Ich gehe davon aus, dass dies der Fall ist, da nur IPv6 erzwungen wird.

Antwort1

Nein, das ist nicht der Fall.

Die Return-Direktive von Nginx erwartet einen HTTP-Statuscode als Argument.

Sie können hierfür aber auch das Echo-Modul verwenden:

server {
    listen [::]:80 ipv6only=on;
    server_name some.name;
    location / {
        echo "$remote_addr";
    }
}

verwandte Informationen