ไฟล์การกำหนดค่าไม่ถูกต้อง

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

ลักษณะปัญหา

Edge Router นำมาใช้งานโดยใช้ NGINX ในระหว่างขั้นตอนการอัปเกรด Edge หรือเมื่อ เมื่อเปลี่ยนการกำหนดค่าเราเตอร์ คุณอาจเห็นข้อผิดพลาดในการกำหนดค่า NGINX ในกรณีเหล่านี้ Edge จะทำเครื่องหมายไฟล์การกำหนดค่า NGINX ทั้งหมดที่ทำให้เกิดปัญหา /opt/nginx/conf.d:

-rw-r--r-- 1 apigee apigee 522 Jul 20 08:41 0-default.conf.bad 
-rw-r--r-- 1 apigee apigee 577 Jul 20 08:42 0-fallback.conf 
-rw-r--r-- 1 apigee apigee 1062 Jul 20 08:18 0-map.conf 
-rw-r--r-- 1 apigee apigee 1887 Jul 20 08:42 custorg_test_default.conf.bad

ข้อความแสดงข้อผิดพลาด

คุณจะไม่เห็นข้อความแสดงข้อผิดพลาดใดๆ อย่างไรก็ตาม คุณอาจเรียกใช้ API ไม่ได้ เนื่องจากไฟล์การกำหนดค่าไม่ถูกต้อง

สาเหตุที่เป็นไปได้

โดยทั่วไปแล้ว ระบบจะทำเครื่องหมายไฟล์การกำหนดค่า NGINX ที่ไม่ถูกต้องเนื่องจากกำหนดค่าที่ไม่ถูกต้องเป็น พร็อพเพอร์ตี้ NGINX ในไฟล์ /opt/apigee/customer/application/router.properties หรือมีการเปลี่ยนแปลงที่ไม่ถูกต้องกับโฮสต์เสมือน

การวินิจฉัย

  1. นำคำต่อท้าย .bad ออกจากชื่อไฟล์ใน /opt/nginx/conf.d เพื่อให้ลงท้ายด้วย .conf
  1. เรียกใช้เครื่องมือ configtest ของ NGINX เพื่อหาสาเหตุของความล้มเหลว
    /opt/nginx/scripts/apigee-nginx configtest
    

ความละเอียด

  1. หากการทดสอบการกำหนดค่าระบุสาเหตุของไฟล์การกำหนดค่าที่ไม่ถูกต้องได้ ให้แก้ไขปัญหาโดย ทำการเปลี่ยนแปลงที่เหมาะสมกับพร็อพเพอร์ตี้หนึ่งๆ ใน /opt/apigee/customer/application/router.properties ไฟล์หรือโฮสต์เสมือน
  1. นำไดเรกทอรี /opt/nginx/conf.d ออก: วันที่
    rm -rf /opt/nginx/conf.d
    
  1. รีสตาร์ทเราเตอร์ดังนี้
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
    
  1. คุณจะไม่เห็นไฟล์การกำหนดค่าที่ไม่ถูกต้องใน /opt/nginx/conf.d ไดเรกทอรี

หากยังคงพบปัญหาอยู่ ให้ติดต่อทีมสนับสนุนของ Apigee Edge

ตัวอย่างที่แสดงวิธีแก้ไขปัญหาตามข้อมูลที่ให้ไว้ การทดสอบการกำหนดค่า NGINX

ตัวอย่างที่ 1: ตั้งค่าพร็อพเพอร์ตี้ NGINX ไม่ถูกต้อง

  1. สมมติว่าคุณอัปเดตพร็อพเพอร์ตี้ "proxy_busy_buffers_size" แล้ว เป็น 128K ในไฟล์ /opt/apigee/customer/application/router.properties ตามที่แสดง ด้านล่าง
    conf_load_balancing_load.balancing.driver.proxy.busy.buffer.size=128k 
    

ซึ่งทำให้ไฟล์การกำหนดค่าใน /opt/apigee/nginx/conf.d มีการทำเครื่องหมายว่าไม่ถูกต้อง ไดเรกทอรี

  1. เรียกใช้คำสั่ง NGINX configtest เพื่อหาสาเหตุของความล้มเหลว
    /opt/nginx/scripts/apigee-nginx configtest
    nginx: [emerg] "proxy_busy_buffers_size" must be equal to or greater than the maximum of the value of "proxy_buffer_size" and one of the "proxy_buffers" in /opt/nginx/conf/nginx.conf:47
    nginx: configuration file /opt/nginx/conf/nginx.conf test failed
    

ผล configtest จะระบุว่าค่าของพร็อพเพอร์ตี้ proxy_busy_buffers_size ควรเท่ากับหรือมากกว่า proxy_buffer_size แต่ดูเหมือนจะตั้งค่าด้วยค่าที่ไม่ถูกต้อง

  1. ตรวจสอบค่าที่ตั้งไว้สำหรับพร็อพเพอร์ตี้ proxy_buffer_size และ proxy_ไม่ว่าง_buffers_size ในไฟล์ 0-default.conf:
    proxy_buffer_size 512k;
    proxy_busy_buffers_size 128k;
    
  1. อัปเดตค่าของพร็อกซี_ไม่ว่าง_บัฟเฟอร์_ขนาดเป็น 512K ในส่วน /opt/apigee/customer/application/router.properties ไฟล์: วันที่
    conf_load_balancing_load.balancing.driver.proxy.busy.buffer.size=512k
    
  1. นำโฟลเดอร์ /opt/nginx/conf.d ออก: วันที่
    rm -rf /opt/nginx/conf.d
    
  1. รีสตาร์ทเราเตอร์ดังนี้
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
    

โดยเราได้แก้ไขปัญหานี้แล้วและได้นำไฟล์การกำหนดค่าที่ไม่ถูกต้องออก

ตัวอย่างที่ 2: กระบวนการอัปเกรด NGINX (Private Cloud 18.01 เท่านั้น) ไม่สำเร็จ

สมมติว่าคุณเรียกใช้ configtest และได้รับการตอบกลับต่อไปนี้ วันที่

/apigee-nginx configtest

 nginx: the configuration file /opt/nginx/conf/nginx.conf syntax is ok
 nginx: [emerg] zero size shared memory zone "perclient"
 nginx: configuration file /opt/nginx/conf/nginx.conf test failed

ความล้มเหลวนี้บ่งชี้ว่ากระบวนการอัปเกรด NGINX จาก 1.10.x เป็น 1.12.x ไม่สำเร็จ มีข้อบกพร่องที่ทราบแล้วซึ่งเกี่ยวข้องกับการอัปเกรด Edge Private Cloud เป็นเวอร์ชัน 18.01

หากต้องการวินิจฉัยปัญหานี้อย่างเหมาะสม (เฉพาะกรณีที่คุณใช้ Private Cloud 18.01 เท่านั้น) ให้ทำดังนี้

rpm -aq | grep apigee-nginx

คำสั่งนี้ควรแสดงผล rpm ที่ติดตั้งเป็นเวอร์ชัน 1.12.x หากยังคงไม่อัปเดต โปรดทำตามขั้นตอนต่อไปนี้

  1. หยุดคอมโพเนนต์ EDGE-Router
  2. สำรองข้อมูลคอมโพเนนต์ EDGE-Router
  3. เรียกใช้คำสั่งนี้เพื่ออัปเกรดเป็น apigee-nginx 1.2.x
  4. sudo yum update apigee-nginx
  5. ลบทั้ง *.bad ไฟล์ภายใต้ /opt/apigee/nginx/conf.d.
  6. รีสตาร์ทคอมโพเนนต์ Edge Router