Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào
tài liệu Apigee X. thông tin
Dấu hiệu
Bộ định tuyến biên được triển khai bằng NGINX. Trong quá trình nâng cấp Edge hoặc khi thay đổi cấu hình của Bộ định tuyến, bạn có thể gặp phải lỗi cấu hình NGINX. Khi những lỗi này xảy ra, Edge sẽ đánh dấu tất cả các tệp cấu hình NGINX gây ra vấn đề thành /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
Thông báo lỗi
Bạn sẽ không thấy thông báo lỗi nào. Tuy nhiên, bạn có thể không thực thi được các proxy API do tệp cấu hình không hợp lệ.
Nguyên nhân có thể dẫn đến vấn đề này
Thông thường, các tệp cấu hình NGINX được đánh dấu là không hợp lệ do(các) giá trị không chính xác được đặt cho(các) thuộc tính NGINX trong tệp /opt/apigee/customer/application/router.properties hoặc các thay đổi không chính xác được thực hiện đối với máy chủ ảo.
Chẩn đoán
- Xoá hậu tố .bad khỏi tên tệp trong thư mục
/opt/nginx/conf.dđể tên tệp kết thúc bằng .conf.
- Chạy công cụ configtest của NGINX để xác định lý do gây ra lỗi:
/opt/nginx/scripts/apigee-nginx configtest
Độ phân giải
- Nếu kiểm thử cấu hình xác định được lý do khiến tệp cấu hình không hợp lệ, hãy khắc phục vấn đề bằng cách thực hiện các thay đổi thích hợp đối với thuộc tính cụ thể trong tệp
/opt/apigee/customer/application/router.propertieshoặc máy chủ ảo.
- Xoá thư mục
/opt/nginx/conf.d:rm -rf /opt/nginx/conf.d
- Khởi động lại bộ định tuyến:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- Bạn sẽ không còn thấy các tệp cấu hình không hợp lệ trong thư mục
/opt/nginx/conf.dnữa.
Nếu vấn đề vẫn tiếp diễn, hãy liên hệ với Nhóm hỗ trợ Apigee Edge.
Sau đây là ví dụ minh hoạ cách khắc phục vấn đề dựa trên thông tin do kiểm thử cấu hình NGINX cung cấp.
Ví dụ 1: Giá trị đặt không chính xác cho một thuộc tính NGINX
- Giả sử bạn đã cập nhật thuộc tính "proxy_busy_buffers_size" thành 128K trong tệp
/opt/apigee/customer/application/router.properties, như minh hoạ dưới đây:conf_load_balancing_load.balancing.driver.proxy.busy.buffer.size=128k
Điều này khiến các tệp cấu hình bị đánh dấu là không hợp lệ trong thư mục /opt/apigee/nginx/conf.d.
- Chạy lệnh configtest của NGINX để xác định lý do gây ra lỗi:
/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
Kết quả configtest cho biết giá trị của thuộc tính proxy_busy_buffers_size phải bằng hoặc lớn hơn proxy_buffer_size, nhưng có vẻ như được đặt bằng một giá trị không chính xác.
- Kiểm tra các giá trị được đặt cho các thuộc tính proxy_buffer_size và proxy_busy_buffers_size trong tệp
0-default.conf:proxy_buffer_size 512k; proxy_busy_buffers_size 128k;
- Cập nhật giá trị của proxy_busy_buffers_size thành 512K trong tệp
/opt/apigee/customer/application/router.properties:conf_load_balancing_load.balancing.driver.proxy.busy.buffer.size=512k
- Xoá thư mục
/opt/nginx/conf.d:rm -rf /opt/nginx/conf.d
- Khởi động lại bộ định tuyến:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
Chúng tôi đã khắc phục vấn đề này và xoá các tệp cấu hình không hợp lệ.
Ví dụ 2: Quá trình nâng cấp NGINX không thành công (chỉ dành cho Đám mây riêng 18.01)
Giả sử bạn chạy configtest và nhận được các phản hồi sau:
/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
Lỗi này cho biết quy trình nâng cấp NGINX từ 1.10.x lên 1.12.x không thành công. Có một lỗi đã biết liên quan đến việc nâng cấp Edge Private Cloud lên phiên bản 18.01.
Để chẩn đoán đúng vấn đề này (chỉ khi bạn đang sử dụng Private Cloud 18.01), hãy làm như sau:
rpm -aq | grep apigee-nginx
Lệnh này sẽ trả về rpm đã cài đặt dưới dạng phiên bản 1.12.x. Nếu không, hãy làm theo các bước sau:
- Dừng thành phần bộ định tuyến biên.
- Sao lưu thành phần bộ định tuyến biên.
- Chạy lệnh này để nâng cấp lên apigee-nginx 1.2.x:
- Xoá tất cả tệp
*.badtrong/opt/apigee/nginx/conf.d. - Khởi động lại thành phần bộ định tuyến biên.
sudo yum update apigee-nginx