Score:0

ใครมีวิธีแก้ไขให้ฉันเข้าถึงโฟลเดอร์ย่อยของแอปพลิเคชันของฉันที่อยู่หลังพร็อกซี nginx

ธง us

ฉันมีเซิร์ฟเวอร์สองเครื่องที่มีที่อยู่ 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

ใครมีวิธีแก้ไขสำหรับฉันบ้าง

user11665472 avatar
us flag
ผิดคาด! ข้อผิดพลาด ฉันหมายความว่าฉันไม่สามารถเข้าถึงไฟล์ในโฟลเดอร์เหล่านี้ผ่าน **nginx.domain.com/app1/folder1** หรือ **nginx.domain.com/app1/folder2**; ฉันได้รับข้อผิดพลาด 404 ใครมีวิธีแก้ไขให้ฉันเข้าถึงโฟลเดอร์ย่อยของแอปพลิเคชันของฉันที่อยู่หลังพร็อกซี nginx
djdomi avatar
za flag
คำถามที่ต้องการความช่วยเหลือในการติดตั้ง การกำหนดค่า หรือการวินิจฉัยต้องรวมถึงสถานะสิ้นสุดที่ต้องการ ปัญหาหรือข้อผิดพลาดเฉพาะ ข้อมูลที่เพียงพอเกี่ยวกับการกำหนดค่าและสภาพแวดล้อมเพื่อทำซ้ำ และพยายามแก้ไข คำถามที่ไม่มีคำชี้แจงปัญหาที่ชัดเจนไม่เป็นประโยชน์สำหรับผู้อ่านรายอื่นและไม่น่าจะได้รับคำตอบที่ดี
user11665472 avatar
us flag
Mister Djdomi ขอบคุณสำหรับความคิดเห็นของคุณ ฉันเพิ่งแก้ไขคำถามพร้อมรายละเอียดเพิ่มเติม
djdomi avatar
za flag
การกำหนดค่า showb ไม่สะท้อนถึงสถานะที่ใช้ในปัจจุบัน คุณสับสนอะไรหรือเปล่า โปรดแสดงและแบ่งปันการกำหนดค่าที่ถูกต้อง nginx -T ช่วยคุณได้
user11665472 avatar
us flag
คุณ Djdomi ขอขอบคุณอีกครั้งสำหรับความคิดเห็นของคุณ ฉันเพิ่งแก้ไขคำถามด้วยการกำหนดค่า nginx ทั้งหมด

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา