Score:0

ตั้งค่าการเปลี่ยนเส้นทางเริ่มต้นใน Nginx

ธง cn

ฉันต้องการวิธีเปลี่ยนเส้นทางลูกค้าเมื่อไม่มีการกำหนดเส้นทางที่มีอยู่ เมื่อฉันใส่การกำหนดค่าส่งคืน 301 ดูเหมือนว่า nginx จะไม่สนใจการกำหนดค่าตำแหน่งใด ๆ มันเปลี่ยนเส้นทางทุกอย่าง

ชื่อโฮสต์ในการเปลี่ยนเส้นทางต้องเป็นไดนามิก (มาจากไคลเอนต์) จริงๆ แล้วเซิร์ฟเวอร์เหล่านี้เป็นคอนเทนเนอร์และปรับใช้กับสภาพแวดล้อม Dev/Prod ดังนั้น URL ไคลเอนต์จึงเปลี่ยนจาก dev.example.com เป็น example.com ฉันไม่ต้องการทำการแลกเปลี่ยนการกำหนดค่าตามสภาพแวดล้อม

ฉันใช้ v1.18 บน RHEL พร็อกซีเซิร์ฟเวอร์เป็นแอปเชิงมุมที่จัดการโดยนักพัฒนาที่เกี่ยวข้อง

เซิร์ฟเวอร์ {
  ฟัง 80;
  ชื่อเซิร์ฟเวอร์ _;

  ดัชนี index.html;

  สถานที่ = /บริการ/a {
    proxy_pass http://svc-a.local/service/a/;
  }
  สถานที่ /บริการ/a/ {
    proxy_pass http://svc-a.local/service/a/;
  }

  สถานที่ = /บริการ/b {
    proxy_pass http://svc-b.local/service/b/;
  }
  สถานที่ /บริการ/b/ {
    proxy_pass http://svc-b.local/service/b/;
  }

  สถานที่ = /บริการ/x {
    proxy_pass http://svc-x.local/service/x/;
  }
  สถานที่ /บริการ/x/ {
    proxy_pass http://svc-x.local/service/x/;
  }

  สถานที่ = / บ้าน {
    proxy_pass http://home.local/home/;
  }
  สถานที่ /บ้าน/ {
    proxy_pass http://home.local/home/;
  }

  # kubernetes ตรวจสอบสิ่งนี้ แต่ล้มเหลวในการรับ 301
  ตำแหน่ง /nginx_status {
    stub_status บน;
    access_log off;
  }

  # หากไม่ตรงกับด้านบนให้ไปที่ /HOME

  #ลอง#1
  ส่งคืน 301 http://$host/home/;

  #ลอง#2
  ที่ตั้ง = / {
    ส่งคืน 301 http://$host/home/;
  }

  #ลอง#3
  กลับ 301 /บ้าน/;

  #ลอง#4
  ที่ตั้ง = / {
    proxy_pass http://home.local/home/;
  }
}
Score:0
ธง nr

เดอะ กลับ 301 กฎ เมื่ออยู่นอกบล็อกตำแหน่งใดๆ จะใช้กับการบล็อกเซิร์ฟเวอร์ทั้งหมดและมีผลเหนือกว่าบล็อกตำแหน่ง คุณสามารถกำหนดบล็อคตำแหน่งเริ่มต้น/ทางเลือกแทนได้เหมือนใน #2 ของคุณ แต่ไม่มีเครื่องหมายเท่ากับ (=). เครื่องหมายเท่ากับระบุการจับคู่แบบตรงทั้งหมด และคุณต้องการการจับคู่คำนำหน้าแทน เพื่อให้ตรงกับคำขอทั้งหมด

ตัวอย่างเช่น:

เซิร์ฟเวอร์ {
  ฟัง 80;
  ชื่อเซิร์ฟเวอร์ _;

  ดัชนี index.html;

  สถานที่ = /บริการ/a {
    proxy_pass http://svc-a.local/service/a/;
  }
  สถานที่ /บริการ/a/ {
    proxy_pass http://svc-a.local/service/a/;
  }

  สถานที่ /บริการ/b/ {
    proxy_pass http://svc-b.local/service/b/;
  }

  สถานที่ = /บริการ/x {
    proxy_pass http://svc-x.local/service/x/;
  }
  สถานที่ /บริการ/x/ {
    proxy_pass http://svc-x.local/service/x/;
  }

  สถานที่ = / บ้าน {
    proxy_pass http://home.local/home/;
  }
  สถานที่ /บ้าน/ {
    proxy_pass http://home.local/home/;
  }

  # kubernetes ตรวจสอบสิ่งนี้ แต่ล้มเหลวในการรับ 301
  ตำแหน่ง /nginx_status {
    stub_status บน;
    access_log off;
  }

  # หากไม่ตรงกับด้านบนให้ไปที่ /HOME

  ที่ตั้ง / {
     ส่งคืน 301 http://$host/home/;
  }
}

โพสต์คำตอบ

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