Score:0

CORS และ Nginx ข้างหน้า apache reverse proxy/proxy pass ไม่ทำงานเพื่อเข้าถึงเซิร์ฟเวอร์ API

ธง id

ฉันกำลังพยายามตั้งค่า reverse proxy ไปยังเซิร์ฟเวอร์ api ของฉัน แต่ได้รับหน้าข้อผิดพลาด 404

บริบท: ในขณะที่ตั้งค่าแอปพลิเคชัน react.js และพยายามค้นหาวิธีแก้ไขปัญหา CORS ฉันได้ตัดสินใจใช้ reverse proxy (proxy pass) กับ nginx เพื่อเรียกใช้เซิร์ฟเวอร์ api ภายในและหลอกเบราว์เซอร์ให้คิดว่า api อยู่บน โดเมนเดียวกัน

นี่คือการตั้งค่าที่ตั้งใจไว้ของฉัน:

https://example.com ชี้ไปที่ไดเร็กทอรีของเว็บไซต์

https://example.com/api เรียก api url ที่ฟังเป็นการภายใน http://127.0.0.1:1234 ผ่าน nginx reverse proxy

ฉันใช้ hestia cp ซึ่งมี nginx อยู่หน้า apache เป็น reverse proxy

ปัญหา ถ้าฉันใช้ lynx เพื่อโทรโดยตรง http://127.0.0.1:1234ฉันได้รับการตอบกลับที่ถูกต้องจากเซิร์ฟเวอร์ API ของฉัน อย่างไรก็ตาม เมื่อใช้ผ่านพรอกซีบน url https://example.com/apiฉันได้รับหน้าข้อผิดพลาด 404

ไฟล์ปรับแต่ง Nginx

นี่คือการตั้งค่า nginx.ssl.conf ของฉันสำหรับ example.com

ตำแหน่ง /api/ {
                proxy_pass http://127.0.0.1:1234;
                access_log /var/log/apache2/domains/example.com-api.log กำหนดเอง;
                access_log /var/log/apache2/domains/example.com-api.bytes ไบต์;

}

นี่คือการตั้งค่า nginx.conf ของฉันสำหรับโดเมน api.com ของฉัน, กำลังฟัง 127.0.0.1, พอร์ต 1234

เซิร์ฟเวอร์ {
    ฟัง 127.0.0.1:1234;
    server_name 127.0.0.1;

    ที่ตั้ง / {
        proxy_pass http://10.0.10.55:8080;
        ตำแหน่ง ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|tif|tiff|css|js|htm|html|ttf|otf|webp|woff|txt|csv|rtf|doc |docx|xls|xlsx|ppt|pptx|odf|odp|ods|odt|pdf|psd|ai|eot|eps|ps|zip|tar|tgz|gz|rar|bz2|7z|aac|m4a|mp3 |mp4|ogg|wav|wma|3gp|avi|flv|m4v|mkv|mov|mpeg|mpg|wmv|exe|iso|dmg|swf)$ {
            รูท /home/user/web/api.com/public_html;
            access_log /var/log/apache2/domains/api.com.log รวมกัน;
            access_log /var/log/apache2/domains/api.com.bytes ไบต์;
            หมดอายุสูงสุด
            try_files $uri @ฟอลแบ็ค;
        }
    } ตำแหน่ง /ข้อผิดพลาด/ {
        นามแฝง /home/user/web/api.com/document_errors/;
    }

    ตำแหน่ง @ฟอลแบ็ค {
        proxy_pass http://10.0.10.55:8080;
    }

    ตำแหน่ง ~ /\.ht {กลับ 404;}
    ตำแหน่ง ~ /\.svn/ {กลับ 404;}
    ตำแหน่ง ~ /\.git/ {กลับ 404;}
    ตำแหน่ง ~ /\.hg/ {กลับ 404;}
    ตำแหน่ง ~ /\.bzr/ {กลับ 404;} }

มีคนช่วยฉันดีบักหรือแก้ไขปัญหานี้ได้ไหม ไม่เห็นอะไรโดดเด่นในบันทึก แต่อาจไม่รู้ว่าต้องค้นหาอะไร ดูเหมือนว่าการโทรผ่าน nginx proxy pass ไม่ถึง apache ฉันได้อ่านแล้วว่า lynx เรียก apache โดยตรง ถ้าฉันข้าม nginx ถ้าฉันใช้ 127.0.0.1:1234 url/port รวมกัน

ขอบคุณมากล่วงหน้า

โพสต์คำตอบ

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