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

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

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

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

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

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

คุณสมบัติต่อไปนี้จะควบคุมระยะหมดเวลา I/O บนเราเตอร์

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

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

หากไม่มีการตอบกลับจากผู้ประมวลผลข้อความภายในระยะหมดเวลานี้ เราเตอร์จะหมดเวลา

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

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

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

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

หากไม่มีการตอบกลับจากผู้ประมวลผลข้อความภายในระยะหมดเวลานี้ เราเตอร์จะหมดเวลา

คุณสมบัตินี้ใช้สำหรับโฮสต์เสมือนทั้งหมดบนเราเตอร์นี้

ค่าเริ่มต้นของพร็อพเพอร์ตี้นี้คือ 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 เราเตอร์

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

ซึ่งจะมีผลเมื่อการติดตั้ง Edge ของคุณมีตัวประมวลผลข้อความหลายรายการ และมีการเปิดใช้การลองอีกครั้งเมื่อเกิดข้อผิดพลาด ซึ่งประกอบด้วยค่าใดค่าหนึ่งต่อไปนี้

  • ค่าปัจจุบันของ 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

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

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

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

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

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

API ของ Edge

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

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

    ผู้ใช้ระบบคลาวด์สาธารณะ

    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} คือชื่อของโฮสต์เสมือน

    ตัวอย่างการกำหนดค่า Virtualhost

        {
          "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 อัปเดตโฮสต์เสมือน ดังนี้

    ผู้ใช้ระบบคลาวด์สาธารณะ

    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 บนโฮสต์เสมือนโดยใช้ Edge API เรียบร้อยแล้ว

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

    ผู้ใช้ระบบคลาวด์สาธารณะ

    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 ในตัวประมวลผลข้อความ