การกำหนดค่าระยะหมดเวลา I/O บนเราเตอร์

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่ เอกสารประกอบของ Apigee X
info

เอกสารนี้อธิบายวิธีกำหนดค่าการหมดเวลา I/O ในเราเตอร์ของ Apigee Edge

การหมดเวลา I/O ในเราเตอร์แสดงถึงระยะเวลาที่เรารอรับการตอบกลับจาก Message Processor หลังจากสร้างการเชื่อมต่อและส่งคำขอไปยัง Message Processor ค่าเริ่มต้นของการหมดเวลา I/O ในเราเตอร์คือ 57 วินาที

คุณสามารถเพิ่มหรือลดการหมดเวลา I/O สำหรับเราเตอร์จากค่าเริ่มต้น 57 วินาที ได้ตามต้องการ โดยกำหนดค่าได้ด้วยวิธีต่อไปนี้

  • ในโฮสต์เสมือน
  • ในเราเตอร์

พร็อพเพอร์ตี้ต่อไปนี้ควบคุมการหมดเวลา I/O ในเราเตอร์

ชื่อพร็อพเพอร์ตี้ ตำแหน่ง คำอธิบาย
proxy_read_timeout โฮสต์เสมือน

ระบุระยะเวลาสูงสุดที่เรารอรับการตอบกลับจาก Message Processor หลังจากสร้างการเชื่อมต่อและส่งคำขอไปยัง Message Processor

หากไม่มีการตอบกลับจาก Message Processor ภายในระยะเวลาการหมดเวลานี้ เราเตอร์จะหมดเวลา

โดยค่าเริ่มต้น พร็อพเพอร์ตี้จะใช้ค่าที่ตั้งไว้สำหรับ conf_load_balancing_load.balancing.driver.proxy.read.timeout พร็อพเพอร์ตี้ในเราเตอร์ ค่าเริ่มต้นคือ 57 วินาที

หากมีการแก้ไขพร็อพเพอร์ตี้นี้ด้วยค่าการหมดเวลาใหม่สำหรับโฮสต์เสมือนที่เฉพาะเจาะจง ระบบจะส่งผลกระทบต่อพร็อกซี API ที่ใช้โฮสต์เสมือนที่เฉพาะเจาะจงนั้นเท่านั้น

conf_load_balancing_load.balancing.driver.proxy.read.timeout เราเตอร์

ระบุระยะเวลาสูงสุดที่เรารอรับการตอบกลับจาก Message Processor หลังจากสร้างการเชื่อมต่อและส่งคำขอไปยัง Message Processor

หากไม่มีการตอบกลับจาก Message Processor ภายในระยะเวลาการหมดเวลานี้ เราเตอร์จะหมดเวลา

พร็อพเพอร์ตี้นี้ใช้สำหรับโฮสต์เสมือนทั้งหมดในเราเตอร์นี้

ค่าเริ่มต้นของพร็อพเพอร์ตี้นี้คือ 57 วินาที

คุณสามารถแก้ไขพร็อพเพอร์ตี้นี้ตามที่อธิบายไว้ใน การกำหนดค่าการหมดเวลา I/O ในเราเตอร์ ด้านล่าง หรือเขียนทับ ค่านี้โดยตั้งค่าพร็อพเพอร์ตี้ proxy_read_timeout ที่ระดับโฮสต์เสมือนก็ได้

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

ms: milliseconds
s:  seconds (default)
m:  minutes
h:  hours
d:  days
w:  weeks
M:  months (length of 30 days)
y:  years (length of 365 days)
conf_load_balancing_load.balancing.driver.nginx.upstream_next_timeout เราเตอร์

ระบุระยะเวลารวมที่เรารอรับการตอบกลับจาก Message Processor ทั้งหมด หลังจากสร้างการเชื่อมต่อและส่งคำขอไปยัง Message Processor แต่ละรายการ

การตั้งค่านี้ใช้ได้เมื่อการติดตั้ง Edge มี Message Processor หลายรายการและ เปิดใช้การลองอีกครั้งเมื่อเกิดข้อผิดพลาด โดยมีค่าเป็นค่าใดค่าหนึ่งต่อไปนี้

  • ค่าปัจจุบันของ conf_load_balancing_load.balancing.driver.proxy.read.timeout
  • ค่าเริ่มต้น 57 วินาที

เช่นเดียวกับพร็อพเพอร์ตี้ conf_load_balancing_load.balancing.driver.proxy.read.timeout คุณสามารถระบุช่วงเวลาอื่นที่ไม่ใช่ค่าเริ่มต้น (วินาที) ได้

ก่อนเริ่มต้น

ก่อนจะทำตามขั้นตอนในเอกสารนี้ โปรดตรวจสอบว่าคุณเข้าใจหัวข้อต่อไปนี้

การกำหนดค่าการหมดเวลา I/O ในโฮสต์เสมือน

ส่วนนี้จะอธิบายวิธีกำหนดค่าการหมดเวลา I/O ในโฮสต์เสมือนที่เชื่อมโยงกับองค์กรและสภาพแวดล้อม คุณสามารถกำหนดค่าการหมดเวลา I/O ในโฮสต์เสมือนผ่าน พร็อพเพอร์ตี้ proxy_read_timeout ซึ่งแสดงถึงค่าการหมดเวลา I/O เป็นวินาที

คุณสามารถกำหนดค่าโฮสต์เสมือนได้โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้

  • UI ของ Edge
  • API ของ Edge

UI ของ Edge

หากต้องการกำหนดค่าโฮสต์เสมือนโดยใช้ UI ของ Edge ให้ทำดังนี้

  1. เข้าสู่ระบบ UI ของ Edge
  2. ไปที่ผู้ดูแลระบบ > โฮสต์เสมือน
  3. เลือกสภาพแวดล้อม ที่เฉพาะเจาะจงซึ่งคุณต้องการทำการเปลี่ยนแปลงนี้
  4. เลือกโฮสต์เสมือนที่เฉพาะเจาะจงซึ่งคุณต้องการกำหนดค่าค่าการหมดเวลา I/O ใหม่
  5. ในส่วนพร็อพเพอร์ตี้ ให้อัปเดตค่าการหมดเวลาในการอ่านพร็อกซี เป็นวินาที

    ตัวอย่างเช่น หากต้องการเปลี่ยนการหมดเวลาเป็น 120 วินาที ให้พิมพ์ 120 ดังที่แสดงใน รูปภาพต่อไปนี้

    ค่าระยะหมดเวลาในการอ่านพร็อกซีเป็น 120

  6. บันทึกการเปลี่ยนแปลง

API ของ Edge

หากต้องการกำหนดค่าโฮสต์เสมือนโดยใช้ API ของ Edge ให้ทำดังนี้

  1. รับการกำหนดค่าโฮสต์เสมือนปัจจุบันโดยใช้ API รับโฮสต์เสมือน ดังที่แสดงด้านล่าง

    ผู้ใช้ Public Cloud

    curl -v -X GET https//api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                    

    ผู้ใช้ Private Cloud

    curl -v -X GET http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                    

    โดยที่

    {organization-name} คือชื่อองค์กร

    {environment-name} คือชื่อสภาพแวดล้อม

    {virtualhost-name} คือชื่อโฮสต์เสมือน

    ตัวอย่างการกำหนดค่าโฮสต์เสมือน

        {
          "hostAliases": [
            "api.myCompany,com"
          ],
          "interfaces": [],
          "listenOptions": [],
          "name": "secure",
          "port": "443",
          "retryOptions": [],
          "sSLInfo": {
            "ciphers": [],
            "clientAuthEnabled": "false",
            "enabled": "true",
            "ignoreValidationErrors": false,
            "keyAlias": "myCompanyKeyAlias",
            "keyStore": "ref://myCompanyKeystoreref",
            "protocols": []
          },
          "useBuiltInFreeTrialCert": false
        }
  2. เพิ่มพร็อพเพอร์ตี้ proxy_read_timeout ลงในเพย์โหลด JSON ของการกำหนดค่าโฮสต์เสมือนที่มีอยู่ ภายใต้ properties โดยใช้ค่าเป็นวินาที

    ตัวอย่างเช่น หากต้องการเปลี่ยนการหมดเวลา I/O เป็น 120 วินาที ให้เพิ่มโค้ดบล็อก properties ดังที่แสดงด้านล่าง

    ตัวอย่างการกำหนดค่าโฮสต์เสมือนที่อัปเดต

    {
      "hostAliases": [
        "api.myCompany,com",
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "properties": {
        "property": [
          {
            "name": "proxy_read_timeout",
            "value": "120"
          }
        ]
      },
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }
  3. บันทึกการกำหนดค่าโฮสต์เสมือนที่อัปเดตแล้วในไฟล์ เช่น virtualhost-payload.json
  4. อัปเดตการกำหนดค่า virtualhost ด้วยการเปลี่ยนแปลงโดยใช้ อัปเดตโฮสต์เสมือน API ดังนี้

    ผู้ใช้ Public Cloud

    curl -v -X POST Content-Type: application/json
    https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
                

    ผู้ใช้ Private Cloud

    curl -v -X POST Content-Type: application/json
    http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
                

    โดยที่

    {organization-name} คือชื่อองค์กร

    {environment-name} คือชื่อสภาพแวดล้อม

    {virtualhost-name} คือชื่อโฮสต์เสมือน

การยืนยันการหมดเวลา I/O ในโฮสต์เสมือน

ส่วนนี้จะอธิบายวิธียืนยันว่าการหมดเวลา I/O ได้รับการแก้ไขใน โฮสต์เสมือนเรียบร้อยแล้วโดยใช้ API ของ Edge

  1. เรียกใช้ API รับโฮสต์เสมือน เพื่อรับการกำหนดค่า virtualhost ดังที่แสดงด้านล่าง

    ผู้ใช้ Public Cloud

    curl -v -X GET https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                  

    ผู้ใช้ Private Cloud

    curl -v -X GET http://<management server-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                  

    โดยที่

    {organization-name} คือชื่อองค์กร

    {environment-name} คือชื่อสภาพแวดล้อม

    {virtualhost-name} คือชื่อโฮสต์เสมือน

  2. ตรวจสอบว่าได้ตั้งค่าพร็อพเพอร์ตี้ proxy_read_timeout เป็นค่าใหม่แล้ว

    ตัวอย่างการกำหนดค่าโฮสต์เสมือนที่อัปเดต

    {
      "hostAliases": [
        "api.myCompany,com",
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "properties": {
        "property": [
          {
            "name": "proxy_read_timeout",
            "value": "120"
          }
        ]
      },
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }

    ในเอาต์พุตตัวอย่างด้านบน โปรดสังเกตว่าได้ตั้งค่า proxy_read_timeout เป็นค่าใหม่ 120 วินาทีแล้ว

  3. หากยังเห็นค่าเก่าสำหรับ proxy_read_timeout, ให้ตรวจสอบว่าคุณ ทำตามขั้นตอนทั้งหมดที่ระบุไว้ในส่วน การกำหนดค่าการหมดเวลา I/O ในโฮสต์เสมือน อย่างถูกต้อง หากข้ามขั้นตอนใดไป ให้ทำซ้ำขั้นตอนทั้งหมดอีกครั้งอย่างถูกต้อง
  4. หากยังแก้ไขการหมดเวลา I/O ไม่ได้ โปรดติดต่อทีมสนับสนุนของ Apigee Edge

การกำหนดค่าการหมดเวลา I/O ในเราเตอร์

ส่วนนี้จะอธิบายวิธีกำหนดค่าการหมดเวลา I/O ในเราเตอร์ คุณสามารถกำหนดค่าการหมดเวลา I/O ผ่านพร็อพเพอร์ตี้ เราเตอร์ conf_load_balancing_load.balancing.driver.proxy.read.timeout ซึ่งแสดงถึง ค่าการหมดเวลา I/O เป็นวินาที

หากต้องการกำหนดค่าการหมดเวลา I/O ในเราเตอร์ ให้ทำดังนี้

  1. ในเครื่องเราเตอร์ ให้เปิดไฟล์ต่อไปนี้ในเครื่องมือแก้ไข หากยังไม่มี ให้สร้างไฟล์
    /opt/apigee/customer/application/router.properties

    ตัวอย่างเช่น หากต้องการเปิดไฟล์ด้วย vi ให้ป้อนคำสั่งต่อไปนี้

    vi /opt/apigee/customer/application/router.properties
  2. เพิ่มบรรทัดในรูปแบบต่อไปนี้ลงในไฟล์ properties โดยแทนที่ค่าสำหรับ time_in_seconds:
  3. conf_load_balancing_load.balancing.driver.proxy.read.timeout=time_in_seconds

    ตัวอย่างเช่น หากต้องการเปลี่ยนการหมดเวลา I/O ในเราเตอร์เป็น 120 วินาที ให้เพิ่มบรรทัดต่อไปนี้

    conf_load_balancing_load.balancing.driver.proxy.read.timeout=120

    นอกจากนี้ คุณยังแก้ไขการหมดเวลา I/O เป็นนาทีได้ด้วย ตัวอย่างเช่น หากต้องการเปลี่ยนการหมดเวลาเป็น 2 นาที ให้เพิ่มบรรทัดต่อไปนี้

    conf_load_balancing_load.balancing.driver.proxy.read.timeout=2m
  4. บันทึกการเปลี่ยนแปลง
  5. ตรวจสอบว่าไฟล์พร็อพเพอร์ตี้นี้เป็นของผู้ใช้ apigee ดังที่แสดงด้านล่าง
    chown apigee:apigee /opt/apigee/customer/application/router.properties
  6. รีสตาร์ทเราเตอร์ดังที่แสดงด้านล่าง
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  7. หากมีเราเตอร์มากกว่า 1 ตัว ให้ทำซ้ำขั้นตอนข้างต้นในเราเตอร์ทั้งหมด

การยืนยันการหมดเวลา I/O ในเราเตอร์

ส่วนนี้จะอธิบายวิธียืนยันว่าการหมดเวลา I/O ได้รับการแก้ไขใน เราเตอร์เรียบร้อยแล้ว

แม้ว่าคุณจะใช้โทเค็น conf_load_balancing_load.balancing.driver.proxy.read.timeout เพื่อตั้งค่าการหมดเวลา I/O ในเราเตอร์ แต่คุณต้องยืนยันว่าได้ตั้งค่าพร็อพเพอร์ตี้ proxy_read_timeout แล้ว ด้วยค่าใหม่

  1. ค้นหาพร็อพเพอร์ตี้ proxy_read_timeout ใน /opt/nginx/conf.d ไดเรกทอรี และตรวจสอบว่าได้ตั้งค่าด้วย ค่าใหม่แล้วหรือไม่ ดังนี้
    grep -ri "proxy_read_timeout" /opt/nginx/conf.d
  2. หากตั้งค่าการหมดเวลา I/O ใหม่ในเราเตอร์เรียบร้อยแล้ว คำสั่งด้านบน แสดงค่าใหม่ในไฟล์การกำหนดค่าโฮสต์เสมือนทั้งหมด

    ตัวอย่างผลลัพธ์จากคำสั่ง grep ด้านบนเมื่อการ หมดเวลา I/O คือ 120 วินาที

    /opt/nginx/conf.d/0-default.conf:proxy_read_timeout 120;
    /opt/nginx/conf.d/0-edge-health.conf:proxy_read_timeout 1s;

    ในเอาต์พุตตัวอย่างด้านบน โปรดสังเกตว่าได้ตั้งค่าพร็อพเพอร์ตี้ proxy_read_timeout ด้วยค่าใหม่ 120 ใน 0-default.conf ซึ่งเป็น ไฟล์การกำหนดค่าสำหรับโฮสต์เสมือนเริ่มต้น ซึ่งแสดงว่าการหมดเวลา I/O ได้รับการกำหนดค่าเป็น 120 วินาทีในเราเตอร์เรียบร้อยแล้ว

  3. หากยังเห็นค่าเก่าสำหรับพร็อพเพอร์ตี้ proxy_read_timeout ให้ตรวจสอบว่าคุณได้ทำตามขั้นตอนทั้งหมดที่ระบุไว้ใน การกำหนดค่าการหมดเวลา I/O ในเราเตอร์ อย่างถูกต้อง หากข้ามขั้นตอนใดไป ให้ทำซ้ำขั้นตอนทั้งหมดอีกครั้งอย่างถูกต้อง
  4. หากยังแก้ไขการหมดเวลา I/O ไม่ได้ โปรดติดต่อทีมสนับสนุนของ Apigee Edge

สิ่งที่ควรทำถัดไป

ดูข้อมูลเกี่ยวกับการกำหนดค่าการหมดเวลา I/O ใน Message Processor