Score:0

NGINX ให้บริการแอปพลิเคชันเชิงมุมหลายตัว - ข้อผิดพลาดที่ไม่มีไฟล์คงที่

ธง bd
Pat

มีแอปพลิเคชันเชิงมุมมากกว่า 1 รายการที่ให้บริการโดยพร็อกซีย้อนกลับ nginx เดียว นี่คือการกำหนดค่าของฉันที่ฉันลอง

ผู้ปฏิบัติงาน_กระบวนการ 1;

error_log <%= ENV["APP_ROOT"] %>/nginx/logs/error.log;
เหตุการณ์ { worker_connections 1024; }

http {

    client_max_body_size 3G;
    
    
    log_format upstream_time '$remote_addr - $remote_user [$time_local]'
                             '"$คำขอ" $สถานะ $body_bytes_sent '
                             '"$http_referer" "$http_user_agent" '
                             'rt="$request_time" uct="$upstream_connect_time" uht="$upstream_header_time" urt="$upstream_response_time" ua="$upstream_addr" ';
                             
    access_log <%= ENV["APP_ROOT"] %>/nginx/logs/access.log upstream_time;  
        
    เซิร์ฟเวอร์ {
        ฟัง <%= ENV["PORT"] %>;
        server_name localhost;
        รูท <%= ENV["APP_ROOT"] %>/สาธารณะ;
        
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_http_version 1.1;
        
        #สปริงบูตไมโครเซอร์วิส
        ตำแหน่ง /monitoringserv/details/ {
            <% ถ้า ENV["FORCE_HTTPS"] %>
                ถ้า ($http_x_forwarded_proto != "https") {
                ส่งคืน 301 https://$host$request_uri;
                }
            <% จบ %>           
            proxy_pass https://monitoring-c-serv.apps-dev.net;
            }
        
        ตำแหน่ง /dashboardserv/คิว/ {
            <% ถ้า ENV["FORCE_HTTPS"] %>
                ถ้า ($http_x_forwarded_proto != "https") {
                ส่งคืน 301 https://$host$request_uri;
                }
            <% จบ %>           
            proxy_pass https://dashboard-c-serv.apps-dev.net;
            }
                
        #default หน้า Landing Page ของ UI
        ตำแหน่ง ~ .(html|js|css|eot|svg|ttf|woff|woff2|png|gif|ico|jpg|jpeg)$ {                                    
            proxy_pass https://dashboard.apps-dev.net;
        }
                                
        ตำแหน่ง ~ ^/admin/.*\.(html|js|css|eot|svg|ttf|woff|woff2|png|gif|ico|jpg|jpeg)$ {
                try_files $request_uri $request_uri/ =404;  
        }

        ตำแหน่ง ~ ^/monitoring/.*\.(html|js|css|eot|svg|ttf|woff|woff2|png|gif|ico|jpg|jpeg)$ {    
                try_files $request_uri $request_uri/ =404;  
        }
                        
        #1-URL UI เริ่มต้น
        ที่ตั้ง / {            
            proxy_pass https://dashboard.apps-dev.net;
        }
        
        ตำแหน่ง /admin/ {          
            proxy_pass https://admin.apps-dev.net;;
        }
        
        ตำแหน่ง /การตรวจสอบ/ {         
            proxy_pass https://monitoring.apps-dev.net;;
        }
    }
}

สร้างแอปพลิเคชันเชิงมุมด้วย

ng สร้าง --prod --base-href /admin/
ng สร้าง --prod --base-href /monitoring/

เมื่อฉันเปิดแอปแดชบอร์ดของแอปพลิเคชันเปิดได้ดีและเมื่อฉันโหลดผู้ดูแลระบบหรือการตรวจสอบ ฉันได้รับข้อผิดพลาดแจ้งว่าไฟล์สแตติกขาดหายไป

us flag
โปรดเพิ่มการกำหนดค่า nginx แบบเต็มตามที่แสดงโดย `nginx -T`
Pat avatar
bd flag
Pat
@TeroKilkanen เพิ่มรหัสการกำหนดค่าแบบเต็ม
us flag
นี่ไม่ใช่ผลลัพธ์ของ `nginx -T` nginx ไม่มีแท็ก `` ในการกำหนดค่า โปรดระบุผลลัพธ์ของ `nginx -T`
Score:1
ธง in

ปัญหาเกี่ยวกับ regexes ลอง

ตำแหน่ง ~ ^/admin/.*\.(html|js|css|eot|svg|ttf|woff|woff2|png|gif|ico|jpg|jpeg)$ {
    try_files $request_uri $request_uri/ =404;  
}
ตำแหน่ง ~ ^/monitoring/.*\.(html|js|css|eot|svg|ttf|woff|woff2|png|gif|ico|jpg|jpeg)$ {    
    try_files $request_uri $request_uri/ =404;  
}

โอ้และอย่าลืมรีสตาร์ท nginx และล้างแคชของเบราว์เซอร์

Pat avatar
bd flag
Pat
@ gerard-h-pille ขอบคุณ ลองเหนือ regex และปัญหาเดียวกัน - "ไม่สามารถโหลดสคริปต์โมดูล: ต้องการสคริปต์โมดูล JavaScript แต่เซิร์ฟเวอร์ตอบสนองด้วยประเภท MIME ของ "text/html" การตรวจสอบประเภท MIME ที่เข้มงวดถูกบังคับใช้สำหรับ สคริปต์โมดูลตามข้อกำหนด HTML" ฉันยังอัปเดตรหัสที่สมบูรณ์ที่เป็นปัญหา
Gerard H. Pille avatar
in flag
สำหรับฉันนั้นฟังดูแตกต่างจาก "ไฟล์คงที่หายไป" ฉันไม่เห็นสิ่งใดในการกำหนดค่าของคุณเกี่ยวกับประเภทละครใบ้
Pat avatar
bd flag
Pat
@ gerard-h-pille ไฟล์สแตติกที่ไม่ดีของฉันหายไปหลังจากแก้ไข regex แต่ข้อผิดพลาดประเภท MIME ที่เข้มงวดเกิดขึ้นหลังจากที่ฉันเพิ่ม baseHref ในเชิงมุม ฉันยังพบว่าจากคอนโซลเบราว์เซอร์ NGINX คาดว่าจะมีการร้องขอไฟล์ทรัพยากร (เช่น ไฟล์ JS) บน URL ที่กำหนดค่าเช่นค่า baseHref และไม่พบ นอกจากนี้ในแท็บแหล่งที่มาของเครื่องมือสำหรับนักพัฒนาเบราว์เซอร์ ฉันเห็นเฉพาะ index.html (ไฟล์เปล่า) โดยไม่มีไฟล์อื่นสำหรับแอป "admin" หรือ "monitoring" ดังนั้นฉันจึงไม่มีการกำหนดค่าบางอย่างใน nginx?
Gerard H. Pille avatar
in flag
Nginx ไม่เคย "คาดหวัง" คำขอ หากเบราว์เซอร์ไม่ส่งคำขอ แสดงว่ามีปัญหากับเบราว์เซอร์หรือ - เป็นไปได้มากว่า - html ของคุณ ด้วย index.html ที่ว่างเปล่า เบราว์เซอร์จึงไม่มีเหตุผลที่จะต้องส่งคำขอเพิ่มเติม โปรดพูดถึงคำพูดของ Tero ก่อน: การกำหนดค่าที่คุณเพิ่มคืออะไร

โพสต์คำตอบ

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