Правило Nginx, ограничивающее конкретную страницу для рендеринга только на частном IP

Я использую keycloak, и он работает на общедоступном IP и консоли администрирования, также доступной через общедоступный IP, и я использую nginx веб-сервер. У меня есть требование, чтобы консоль администрирования была доступна только на частном IP, Другой URL должен обычно работать над общедоступным IP/доменным именем.

Теперь, Исключая: domain_name/auth и domanin_name/auth/realm/admin и другие URL доступны публично.

Требование: Только эта консоль администрирования domanin_name/auth/realm/admin URL должна быть доступной только через частный IP.

Это может быть сделано через правила nginx?

Любой помогает мне на этом.

Ниже конфигурация, которую я пробую, но она не работает как ожидалось.

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name _;

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.

        rewrite ^/(.*) /$1 break;
        proxy_ignore_client_abort on;
        proxy_pass http://localhost:8880;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header  Host $http_host;
    }

    location /auth/realms/master {
        allow 127.0.0.1;
        deny all;
        #try_files $uri $uri/ =404
    }
}
0
задан 5 March 2019 в 10:19

1 ответ

Можно использовать несколько записей сервера и allow и deny, как Вы уже сделали:

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name _;

    location /auth/realm/admin {
        deny all;
        ...
    }
}

server {
    listen 80;
    server_name <your-private-ip>;

    location /auth/realm/admin {
        ...
    }
}
...

Hope, которая помогает.

0
ответ дан 21 September 2019 в 11:57

Другие вопросы по тегам:

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