Hat jemand eine Lösung für mich, um auf einen Unterordner meiner Anwendung hinter dem Nginx-Proxy zuzugreifen?

Hat jemand eine Lösung für mich, um auf einen Unterordner meiner Anwendung hinter dem Nginx-Proxy zuzugreifen?

Ich habe zwei Server mit unterschiedlichen IP-Adressen:

  • Tomcat bedient meine Webanwendung https://app1.domain.com(CentOS6)
  • Nginx fungiert als WAF über https://nginx.domain.com(Centos7)

Nginx läuft auf Port 443 und ich verwende es, um für meine Webanwendung einen Reverse-Proxy auf diese Weise zu verwenden:

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

Auf diese Weise greife ich normalerweise über Nginx auf meine Webanwendung zu https://nginx.domain.com/app1/.

Zweitens ROOThabe ich im Ordner meiner Webanwendung die Anwendung „birt-viewer“ installiert ROOT/birt-viewer. Normalerweise greife ich auf die Anwendung „birt-viewer“ zu, wenn ich den Link verwende https://app1.domain.com/birt-viewer.

Normalerweise greife ich jedoch nicht auf die Birt-Anwendung zu, wenn ich den Link verwende https:// nginx.domain.com/app1/birt-viewer. Wenn ich beispielsweise den Link kopiere

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

und ich füge es nach dem Link ein, https://nginx.domain.com/app1um den endgültigen Link zu erhalten

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

Ich greife auf die Birt-Viewer-Anwendung zu, aber ich verliere Einstellungen wie Cookies und Sitzungen.

Sie verstehen, dass ich den Zugriff auf meine Webanwendung über nginx manuell durchführen muss. Der Nachteil ist der Verlust von Cookies, Sitzungen und anderen Parametern. Der Zugriff sollte jedoch problemlos automatisch erfolgen.

Dies ist meine Nginx-Konfiguration:

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/;
}

           }

}

Mir ist auch aufgefallen, dass, sobald meine Webanwendung hinter Nginx läuft, einige URLs nicht auf dem neuesten Stand sind und trotzdem noch den alten Zugriff behalten.

Mein Anliegen ist also der automatische (nicht manuelle) Zugriff auf die Birt-Viewer-Anwendung über Nginx überhttps://nginx.domain.com/app1/birt-viewer

Hat jemand eine Lösung für mich?

verwandte Informationen