Использование `#` в регулярном выражении местоположения nginx?

У меня есть следующие два блока в моей конфигурации nginx для Kibana. Моя цель - предоставить два уровня доступа: один для доступа к панели инструментов, визуализации и страниц поиска Kibana (для разработчиков), а второй - для доступа к инструментам управления и разработки (для администраторов Elasticsearch).

server {
    listen 80;

    server_name elk.ops.example.com;

    location ~* "(app\/.*\#\/management.*|app\/timelion.*|app\/.*\#\/dev_tools.*)" 
        auth_basic "Restricted Access";
        auth_basic_user_file /etc/nginx/htpasswd.admin;
        proxy_pass http://localhost:5601;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }


    location / {
        auth_basic "Restricted Access";
        auth_basic_user_file /etc/nginx/htpasswd.users;
        proxy_pass http://localhost:5601;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Когда я запускаю с этой конфигурацией, http://elk.ops.example.com/app/timelion правильно приводит к 403 Forbidden при доступе неавторизованных пользователей, однако оба http://elk.ops.example.com/app/kibana#/management?_g= () и http://elk.ops.example.com/app/kibana # / dev_tools / console? _g = () остаются доступными.

Я пробовал все способы фильтра регулярных выражений в первом блоке местоположения, чтобы ограничить эти два пути, но безуспешно. Мне стало ясно, что проблема связана с # в URL-адресе, есть ли что-то особенное в # с nginx, которое вызывает проблемы?

0
задан 13 December 2016 в 23:31
1 ответ

Причина, по которой это не работает, заключается в том, что символ # никогда не отправляется на сервер. К сожалению, с помощью nginx этого не избежать.

0
ответ дан 5 December 2019 в 09:05

Теги

Похожие вопросы