Здравствуйте, All!

Есть объект r.args, но он не работает согласно документации:

function redirect(r) {
 // ...
 r.warn(Object.values(r.args).join(','))
 // ...

- в лог пишется пустая строка. Хотя судя по документации,
Object.values(r.args) должен был бы возвращать массив:
https://nginx.org/en/docs/njs/reference.html#core_object

P.S.

Для организации редиректов на канонический урл (для защиты от DoS/DDoS
путем обхода/отравления кеша с помощью рандомных аргументов запроса)
необходимо узнать какие именно аргументы были переданы в запросе.
Каким образом это можно сделать с помощью njs ?
Только вручную в njs парсить переменную $args ?

Применяется это примерно таким образом:

js_include conf.d/example.com.js;
js_set $stopMobileRedirect stopMobileRedirect;
js_set $x_subdomain x_subdomain;
js_set $redirect redirect;

server {
    # ...
    location / {
            if ($redirect) {
                add_header Set-Cookie $stopMobileRedirect;
                return 302 $redirect;
            }
            # ...
    }
}

--
Best regards,
 Gena

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить