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

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

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

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

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

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

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

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

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

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

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

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

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

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

หากไม่มีการตอบกลับจาก 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 ทั้งหมด ผู้ประมวลผลข้อมูล หลังจากสร้างการเชื่อมต่อและส่งคำขอไปยังแต่ละ Messages ผู้ประมวลผลข้อมูล

การดำเนินการนี้จะมีผลเมื่อการติดตั้ง 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
  • Edge API

UI ของ Edge

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

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

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

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

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

Edge API

หากต้องการกำหนดค่าโฮสต์เสมือนโดยใช้ 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 ในตัวประมวลผลข้อความ