ต้นน้ำหมายถึงอะไรใน nginx?


142
upstream app_front_static {
    server 192.168.206.105:80;
}

ไม่เคยเห็นมาก่อนมีใครรู้บ้างว่าหมายถึงอะไร?

คำตอบ:


167

โดยจะใช้สำหรับพร็อกซีการร้องขอไปยังเซิร์ฟเวอร์อื่น

ตัวอย่างจากhttp://wiki.nginx.org/LoadBalanceExampleคือ:

http {
  upstream myproject {
    server 127.0.0.1:8000 weight=3;
    server 127.0.0.1:8001;
    server 127.0.0.1:8002;    
    server 127.0.0.1:8003;
  }

  server {
    listen 80;
    server_name www.domain.com;
    location / {
      proxy_pass http://myproject;
    }
  }
}

ซึ่งหมายถึงคำขอทั้งหมดสำหรับ / ไปที่เซิร์ฟเวอร์ใด ๆ ที่แสดงรายการภายใต้อัปสตรีม XXX โดยมีค่ากำหนดสำหรับพอร์ต 8000


1
ทำไมคุณแม่นยำhttp {}? Config ของฉันไม่มีสิ่งนี้และใช้งานได้ แค่สงสัย
Olivier Pons

4
@OlivierPons บางทีการกำหนดค่าของคุณอาจ/etc/nginx/conf.d/default.confรวมอยู่ใน/etc/nginx/nginx.confซึ่ง HAShttp {}
srghma

36

upstreamกำหนดคลัสเตอร์ที่คุณสามารถร้องขอพร็อกซีได้ โดยทั่วไปจะใช้สำหรับการกำหนดคลัสเตอร์เว็บเซิร์ฟเวอร์สำหรับการทำโหลดบาลานซ์หรือคลัสเตอร์เซิร์ฟเวอร์แอปสำหรับการกำหนดเส้นทาง / การทำโหลดบาลานซ์


0

หากเรามีเซิร์ฟเวอร์เดียวเราสามารถรวมไว้ใน proxy_pass ได้โดยตรง แต่ในกรณีที่เรามีเซิร์ฟเวอร์หลายเครื่องเราจะใช้ต้นน้ำเพื่อดูแลเซิร์ฟเวอร์ Nginx จะโหลดบาลานซ์ตามปริมาณการใช้งานที่เข้ามา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.