nignx bloqueia o acesso direto ao URL e permite o acesso apenas de um subdomínio específico

nignx bloqueia o acesso direto ao URL e permite o acesso apenas de um subdomínio específico

Tenho a seguinte situação:

  1. Serviço executado com acesso seguro (usuário/senha) através de aplicação web em:

https://myapp.com

Dentro desta aplicação (embed/iframe/etc) configuro alguns serviços que incorporam dados de um subdomínio.

  1. Serviços de subdomínio que devem ser incorporados:

https://data.myapp.com

Esses aplicativos incorporam muitos serviços em "data.myapp.com", como "data.myapp.com/sevice1", "data.myapp.com/sevice2", etc ...

Mas a questão é que:

NÃO QUERO acesso direto ao subdomínio "data.myapp.com"... Quero permitir todo o tráfego somente se a origem for do URLhttps://myapp.com.

Aqui está a aparência do meu arquivo conf nginx:

server {

    server_name myapp.com;

    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;

    root /var/www/html;
}

server {
    server_name data.myapp.com;

    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;

    allow myapp.com;
    deny all;

    location /service1/ {...}
    location /service2/ {...}
    location /service3/ {...}
}

Mas parece que só posso usar allowcom endereço IP e nesse caso o servidor tem o mesmo endereço IP.

Existe uma maneira de bloquear o acesso direto ao server_name atual e permiti-lo apenas de outro domínio?

Obrigado por qualquer ajuda!


ATUALIZAR

Consegui, em parte, bloquear o acesso direto ao meu URL data.myapp.com usando o cabeçalho do referenciador ... mas isso NÃO É SEGURO, uma vez que podemos manipular o cabeçalho do referenciador ...

Siga o código:

server {

    [...]

    if ( $http_referer !~* 'myapp.com' ) {
        return 404;
    }

    [...]
}

informação relacionada