Score:0

กำหนดค่า nginx เพื่อให้บริการพารามิเตอร์สตริงข้อความค้นหา

ธง jp

เรามีไซต์ NextJs หนึ่งไซต์ การส่งออกครั้งต่อไปเราจะได้โฟลเดอร์ out หนึ่งโฟลเดอร์ที่เราต้องการให้บริการจาก Nginx ใน out/login มี '[[...parameter]].html' หนึ่งรายการ เมื่อเราปรับใช้ไซต์โดยใช้ pm2 มันจะทำงานถ้าเรากด url "serverIP:port/login/programID/applicant"

แต่เมื่อให้บริการผ่าน nginx มันไม่ทำงาน

ด้านล่างนี้เป็นเนื้อหาไฟล์การกำหนดค่า nginx:

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

    ฟัง 7001;
    server_name server_ip;
    รูท /var/www/html/out/;
   ที่ตั้ง / {

            try_files $uri $uri.html $uri.html/ =404;
   }

}

กรุณาช่วย. ฉันยังใหม่กับ nginx ดังนั้นจึงมีปัญหา

Score:0
ธง ru

สตริงข้อความค้นหาอ้างอิงถึงพารามิเตอร์ GET ที่คุณระบุหลัง URL เช่น ?ชื่อ=ฟู. ฉันเดาว่าคุณต้องการให้บริการไฟล์ในไดเร็กทอรีแทน เนื่องจากคุณพูดถึง "out folder ที่เราต้องการให้บริการจาก Nginx"


ในกรณีนี้ ตัวอย่างของคุณควรใช้งานได้ดี แต่ของคุณ try_files กฎต้องการให้คุณระบุชื่อไฟล์ภายใน URL ด้วย

ดังนั้นเมื่อคุณขอ GET www.mysite.com จากนั้น Nginx พยายามหาไฟล์ เส้นทางภายใน ราก ไดเร็กทอรีที่มีชื่ออย่างใดอย่างหนึ่ง /, .html, .html/ หรือล้มเหลวด้วยรหัสข้อผิดพลาด 404 เส้นทาง .html/ อ้างถึงไดเร็กทอรีชื่อ .html ภายในรูทของคุณและอาจเป็นข้อผิดพลาด

ในกรณีที่คุณมีไฟล์ชื่อ index.html ในไดเร็กทอรีรูทที่คุณระบุ จากนั้นคำขอต่อไปนี้จะตรงกัน:

  • รับ www.mysite.com/index.html (เพราะว่า $ยูริ)
  • รับ www.mysite.com/index (เพราะว่า $uri.html)

สิ่งที่คุณอาจกำลังมองหาคือ:

ที่ตั้ง / {
   รูท /var/www/html/out;
   ดัชนี index.html index.htm;
   try_files $uri $uri/ =404;
}

สิ่งนี้ทำดังต่อไปนี้:

  • มีไฟล์จริงที่ระบุโดย $ยูริในไดเร็กทอรีรูทของคุณ - จากนั้นให้บริการ
  • มีเส้นทางไดเร็กทอรีที่ระบุโดย $ยูริในไดเรกทอรีรากของคุณ?
    • ถ้าใช่ ตรวจสอบว่ามีไฟล์ชื่อ index.html หรือ ดัชนี.htm - จากนั้นเสิร์ฟสิ่งนี้
  • ไม่ตรงกับข้อใดเลย ส่งคืน 404

ดังนั้น รับ www.mysite.com จะพยายามหาไฟล์ index.html หรือ ดัชนี.htm ภายในรากของคุณ


ในกรณีที่คุณยังคงหมายถึงสตริงข้อความค้นหา คุณสามารถเขียนสิ่งนี้:

ที่ตั้ง / {
    รูท /var/www/html/out;
    try_files /$arg_file =404;
}

จากนั้นขอไลค์ รับ www.mysite.com?file=index.html จะค้นหาไฟล์ index.html ภายในรากของคุณ Nginx นั้นยอดเยี่ยมใช่ไหม


หวังว่านี่จะช่วยได้ :)

อ่านเพิ่มเติมเกี่ยวกับ try_files และ ข้อผิดพลาดของ Nginx และข้อผิดพลาดทั่วไป.

โพสต์คำตอบ

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