Score:0

ฉันจะทำให้เซิร์ฟเวอร์ Nginx พร็อกซีแบบย้อนกลับของฉันเข้าถึงไฟล์ที่กำหนดเส้นทางอื่นในแอปด่วนที่ทำงานบนพอร์ต 3000 ได้อย่างไร

ธง it

ขณะนี้ฉันมีแอปด่วนภายใน /usr/share/nginx/myexpress

แอปพลิเคชัน Express กำลังฟังและทำงานได้อย่างสมบูรณ์บนพอร์ต 3000 เซิร์ฟเวอร์ NGINX ของฉันใช้พร็อกซีย้อนกลับ และฉันสามารถดูหน้าด่วนเริ่มต้นได้โดยไปที่ kodix.com.br

ปัญหาคือ ฉันไม่สามารถไปที่ kodix.com.br/hello ได้หลังจากกำหนดเส้นทางแล้ว ฉันสามารถเข้าถึงได้โดยผ่านที่อยู่ IP เท่านั้น (เหมือนตัวอย่างนี้ แต่มีตัวเลขอื่น: 143.94.233.176:3000/hello)

นี่คือปัจจุบันของฉัน มีไซต์ การกำหนดค่า nginx:

ต้นน้ำ node_app{
เซิร์ฟเวอร์ 127.0.0.1:3000;
}

เซิร์ฟเวอร์ {

    รูท /usr/share/nginx/myexpress;

    # เพิ่ม index.php ในรายการหากคุณใช้ PHP
    ดัชนี index.html index.htm index.nginx-debian.html;

    server_name kodix.com.br www.kodix.com.br;

    ที่ตั้ง / {
        # ความพยายามครั้งแรกในการให้บริการคำขอเป็นไฟล์ จากนั้น
        # เป็นไดเร็กทอรี จากนั้นถอยกลับไปแสดง 404
        try_files $uri $uri/ =404;
        proxy_pass http://node_app;
        proxy_http_version 1.1;
        proxy_set_header อัพเกรด $http_upgrade;
        proxy_set_header การเชื่อมต่อ 'อัปเกรด';
        proxy_set_header โฮสต์ $host;
        proxy_cache_bypass $http_upgrade;
    }

}

ฉันจะทำให้สามารถเข้าถึงหน้าด่วนอื่น ๆ โดยใช้เซิร์ฟเวอร์ nginx ของฉันได้อย่างไร

djdomi avatar
za flag
โปรดแก้ไขคำถามของคุณ ยังไม่ชัดเจนว่าคุณต้องการทำอะไร
Gerard H. Pille avatar
in flag
ถ้าฉันจำไม่ผิด ตำแหน่งที่ลงท้ายด้วย / ควรเป็น proxy_pass ไปยังตำแหน่งที่ลงท้ายด้วย / เช่น "proxy_pass http : //node_app/;" (เว้นช่องว่างรอบๆ :)
Gabriel avatar
it flag
@djdomi ฉันต้องการเข้าถึงหน้าเส้นทางด่วนอื่นๆ เช่น การเข้าถึง kodix.com.br/hello จะส่งฉันไปยังหน้ามุมมองเส้นทางที่ฉันตั้งค่าไว้ในโฟลเดอร์มุมมองจากด่วน
Gabriel avatar
it flag
@ GerardH.Pille การทำเช่นนี้จะทำให้ sudo nginx -t กลับมาพร้อมกับข้อผิดพลาด
Gerard H. Pille avatar
in flag
"ฉันไปไม่ได้": จะเกิดอะไรขึ้นถ้าคุณลอง?
Score:0
ธง cz

โซลูตอนปกติสำหรับสิ่งนี้คือการใช้ตำแหน่งที่มีชื่อ ในการตั้งค่านี้ nginx จะให้บริการเนื้อหาแบบสแตติกก่อน หากไม่มีเนื้อหาคงที่สำหรับเส้นทาง URL แทนที่จะส่งคืน 404 เนื้อหานั้นจะถูกส่งผ่านไปยังตำแหน่งที่มีชื่อ ซึ่งจะส่งไปยังแอปของคุณ

มันเป็นการเพิ่มที่ง่ายมาก:

    ที่ตั้ง / {
        try_files $uri $uri/ @express;
    }

    ที่ตั้ง @express {
        proxy_pass http://node_app;
        proxy_http_version 1.1;
        proxy_set_header อัพเกรด $http_upgrade;
        proxy_set_header การเชื่อมต่อ 'อัปเกรด';
        proxy_set_header โฮสต์ $host;
        proxy_cache_bypass $http_upgrade;
    }

ป.ล. ไม่ควรเก็บไฟล์เว็บของคุณไว้ /usr/share/nginx. ไดเร็กทอรีนี้เป็นของผู้จัดการแพ็คเกจและมีสิทธิ์ในการลบทุกอย่างในนั้นเมื่อใดก็ตามที่แพ็คเกจ nginx ได้รับการอัปเดตหรือลบออก (ส่วนใหญ่จะไม่ทำ แต่นี่เป็นความเสี่ยงที่ฉันจะไม่ทำ)

Score:0
ธง it

ฉันไม่แน่ใจว่านี่เป็นวิธีที่ถูกต้องหรือไม่ แต่ฉันจัดการเพื่อให้มันใช้งานได้โดยการเพิ่มบล็อกตำแหน่งไปยังบล็อกเซิร์ฟเวอร์:

สถานที่ /สวัสดี/ {
    proxy_pass http://localhost:3000/hello;
}

จากนั้น การเข้าถึง myserver.com.br/hello จะเปลี่ยนเส้นทางฉันไปยังหน้าที่ถูกต้อง

djdomi avatar
za flag
แต่ด้วยเหตุผลใดที่คุณรูท /usr/share/nginx/myexpress; ในกรณีที่คุณใช้ reverse_proxy?

โพสต์คำตอบ

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