ฉันมีเซิร์ฟเวอร์สองเครื่องที่มีที่อยู่ IP ต่างกัน:
- Tomcat ให้บริการเว็บแอพของฉัน 
https://app1.domain.com (เซ็นโตส6) 
- Nginx ทำหน้าที่เป็นวาฟผ่าน 
https://nginx.domain.com (เซ็นโตส7) 
Nginx ทำงานบนพอร์ต 443 และฉันใช้เพื่อย้อนกลับพร็อกซี webapp ของฉันด้วยวิธีนี้:
ตำแหน่ง /app1/ {
    เขียนใหม่ ^/app1(.*) /$1 ตัวแบ่ง; 
    proxy_pass https://app1.domain.com/;
}
ด้วยวิธีนี้ ปกติฉันเข้าถึงเว็บแอปผ่าน nginx ผ่าน https://nginx.domain.com/app1/.
ประการที่สองใน ราก ในโฟลเดอร์ของ webapp ของฉัน ฉันติดตั้งแอปพลิเคชัน birt-viewer ในไฟล์ ROOT / birt-viewer โฟลเดอร์ ปกติฉันจะเข้าถึงแอปพลิเคชัน birt-viewer เมื่อฉันใช้ลิงก์ https://app1.domain.com/birt-viewer.
อย่างไรก็ตาม ฉันไม่สามารถเข้าถึงแอปพลิเคชัน birt เมื่อฉันใช้ลิงก์ https://nginx.domain.com/app1/birt-viewer. เมื่อฉันคัดลอกตัวอย่างลิงก์
/birt-viewer/Task.jsp?__report=Recare.rpgn&sample=my+parameter&__sessionId=2026
และแปะไว้หลังลิงค์ https://nginx.domain.com/app1 เพื่อรับลิงค์สุดท้าย
https://nginx.domain.com/app1/birt-viewer/Task.jsp?__report=Recare.rpgn&sample=my+parameter&__sessionId=2026
ฉันเข้าถึงแอปพลิเคชัน birt-viewer แต่ฉันสูญเสียการตั้งค่า เช่น คุกกี้และเซสชัน
คุณเข้าใจว่าการเข้าถึงเว็บแอปของฉันผ่าน nginx ฉันต้องทำด้วยตนเอง ข้อเสียคือการสูญเสียคุกกี้ เซสชัน และพารามิเตอร์อื่นๆ
การเข้าถึงควรทำโดยอัตโนมัติโดยไม่มีปัญหา
นี่คือการกำหนดค่า nginx ของฉัน:
ผู้ใช้ nginxxxx;
ผู้ปฏิบัติงาน_กระบวนการ 1;
error_log /var/log/error.log เตือน;
บันทึก pid/nginx.pid;
เหตุการณ์ {
    worker_connections 1024;
}
http {
# รวม mime.types;
    รวม /opt/nginx/conf/mime.types;    
    รวม /opt/nginx/conf/naxsi_core.rules;
    แอปพลิเคชัน default_type/octet-stream;
    log_format main '$remote_addr - $remote_user [$time_local] "$request"'
                      '$สถานะ $body_bytes_sent "$http_referer"'
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log /var/log/access.log หลัก;
    ส่งไฟล์บน;
    tcp_nopush บน;
    keepalive_timeout 65;
    tcp_nodelay บน;
    เปิด gzip;
    gzip_disable "MSIE [1-6].(?!.*SV1)";
    client_max_body_size 100m;
    client_body_buffer_size 10K;
    เซิร์ฟเวอร์ {
         ฟัง 443 ssl;
        server_name nginx.domain.com;
    access_log บน ;
        access_log /var/log/access.log หลัก;
    error_log บน ;
        error_log /var/log/error.log เตือน;
        ssl_certificate /etc/ssl/certs/m.crt;
        ssl_certificate_key /etc/ssl/private/cs.key;
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers สูง:!aNULL:!MD5;
        เปิด ssl_prefer_server_ciphers;
        add_header การขนส่งที่เข้มงวด - ความปลอดภัย "อายุสูงสุด = 63072000 รวมโดเมนย่อย" เสมอ;
        add_header X-Frame-ตัวเลือก SAMEORIGIN;
        add_header X-Content-Type-Options nosniff;
        add_header X-XSS-การป้องกัน "1; mode=block";
    error_page 403 /403_error.html;
        ตำแหน่ง = /403_error.html {
            รูท /usr/share/nginx/htmml;
            ภายใน;
        }
    error_page 404 /404_error.html;
        ตำแหน่ง = /404_error.html {
            รูท /usr/share/nginx/html;
            ภายใน;
        }
 ตำแหน่ง /app1/
         {
เขียนใหม่ ^/app1(.*) /$1 ตัวแบ่ง;
proxy_connect_timeout 60000;
proxy_send_timeout 60000;
proxy_read_timeout 60000;
send_timeout 60000;
proxy_pass https://app1.domain.com/;
   }
ตำแหน่ง /app1/birt-viewer/ {
    เขียนใหม่ ^/app1/folder1(.*) /$1 ตัวแบ่ง; 
    proxy_pass https:// app1.domain.com/birt-viewer/;
}
           }
}
ฉันยังทราบดีว่าเมื่อเว็บแอปของฉันอยู่เบื้องหลัง nginx บาง URL จะไม่เป็นปัจจุบันและยังคงเข้าถึงแบบเก่าได้
ดังนั้นความกังวลของฉันคือการเข้าถึงแอปพลิเคชัน birt-viewer โดยอัตโนมัติ (ไม่ใช่ด้วยตนเอง) ผ่าน nginx ผ่าน https://nginx.domain.com/app1/birt-viewer
ใครมีวิธีแก้ไขสำหรับฉันบ้าง