alguém tem uma solução para eu acessar uma subpasta do meu aplicativo atrás do proxy nginx?

alguém tem uma solução para eu acessar uma subpasta do meu aplicativo atrás do proxy nginx?

Tenho dois servidores com endereços IP diferentes:

  • Tomcat servindo meu webapp https://app1.domain.com(centos6)
  • Nginx atuando como waf via https://nginx.domain.com(centos7)

O Nginx está sendo executado na porta 443 e estou usando-o para reverter o proxy do meu webapp desta forma:

location /app1/ {
    rewrite ^/app1(.*) /$1 break; 
    proxy_pass https://app1.domain.com/;
}

Dessa forma, normalmente acesso meu webapp via nginx através do https://nginx.domain.com/app1/.

Em segundo lugar, na ROOTpasta do meu webapp, instalei o aplicativo Birt-viewer na ROOT/birt-viewerpasta. Normalmente acesso o aplicativo birt-viewer quando utilizo o link https://app1.domain.com/birt-viewer.

Porém, normalmente não acesso o aplicativo Birt quando uso o link https:// nginx.domain.com/app1/birt-viewer. Quando copio por exemplo o link

/birt-viewer/Task.jsp?__report=Recare.rpgn&sample=my+parameter&__sessionId=2026

e colo depois do link https://nginx.domain.com/app1para obter o link final

https://nginx.domain.com/app1/birt-viewer/Task.jsp?__report=Recare.rpgn&sample=my+parameter&__sessionId=2026

Eu acesso o aplicativo Birt-viewer mas perco configurações como cookies e sessões.

Você entende que para acessar meu webapp via nginx eu tenho que fazer isso manualmente; a desvantagem é a perda de cookies, sessões e outros parâmetros. Ainda assim o acesso deverá ser feito de forma automática e sem problemas.

Esta é minha configuração do nginx:

user nginxxxx;
worker_processes  1;
error_log /var/log/error.log warn;
pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
http {
#    include mime.types;
    include /opt/nginx/conf/mime.types;    
    include /opt/nginx/conf/naxsi_core.rules;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log /var/log/access.log main;
    sendfile        on;
    tcp_nopush     on;
    keepalive_timeout  65;
    tcp_nodelay on;
    gzip  on;
    gzip_disable "MSIE [1-6].(?!.*SV1)";
    client_max_body_size 100m;
    client_body_buffer_size 10K;

    server {
         listen 443 ssl;
        server_name nginx.domain.com;
    access_log on ;
        access_log /var/log/access.log main;
    error_log on ;
        error_log /var/log/error.log warn;
        ssl_certificate /etc/ssl/certs/m.crt;
        ssl_certificate_key /etc/ssl/private/cs.key;
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        add_header Strict-Transport-Security "max-age=63072000; includeSubdomains;" always;
        add_header X-Frame-Options SAMEORIGIN;
        add_header X-Content-Type-Options nosniff;
        add_header X-XSS-Protection "1; mode=block";
    error_page 403 /403_error.html;
        location = /403_error.html {
            root /usr/share/nginx/htmml;
            internal;
        }

    error_page 404 /404_error.html;
        location = /404_error.html {
            root /usr/share/nginx/html;
            internal;
        }


 location /app1/
         {
rewrite ^/app1(.*) /$1 break;
proxy_connect_timeout 60000;
proxy_send_timeout 60000;
proxy_read_timeout 60000;
send_timeout 60000;
proxy_pass https://app1.domain.com/;
   }

location /app1/birt-viewer/ {
    rewrite ^/app1/folder1(.*) /$1 break; 
    proxy_pass https:// app1.domain.com/birt-viewer/;
}

           }

}

Percebo também que uma vez que meu webapp está atrás do nginx, algumas urls não estão atualizadas e ainda mantêm o acesso antigo.

Portanto, minha preocupação é acessar o aplicativo Birt-viewer automaticamente (não manualmente) através do nginx viahttps://nginx.domain.com/app1/birt-viewer

Alguém tem uma solução para mim?

informação relacionada