잘못된 구성 파일

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

증상

Edge Router는 NGINX를 사용하여 구현됩니다. 에지 업그레이드 프로세스 중에 또는 라우터 구성을 변경할 때 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 프록시를 실행하지 못할 수 있습니다.

가능한 원인

일반적으로 /opt/apigee/customer/application/router.properties 파일에서 잘못된 값이 NGINX 속성으로 설정되거나 가상 호스트가 잘못 변경되기 때문에 NGINX 구성 파일이 잘못된 것으로 표시됩니다.

진단

  1. /opt/nginx/conf.d 디렉터리의 파일 이름에서.conf로 끝나도록 .bad 접미사를 삭제합니다.
  1. NGINX configtest 도구를 실행하여 실패 이유를 확인합니다.
    /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. 아래와 같이 /opt/apigee/customer/application/router.properties 파일에서 'proxy_busy_buffers_size' 속성을 128K로 업데이트했다고 가정해 보겠습니다.
    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_busy_buffers_size보다 크거나 같아야 하지만 잘못된 값으로 설정되어 있음을 나타냅니다.

  1. 0-default.conf 파일에서 proxy_buffer_sizeproxy_empty_buffers_size 속성에 설정된 값을 확인합니다.
    proxy_buffer_size 512k;
    proxy_busy_buffers_size 128k;
    
  1. /opt/apigee/customer/application/router.properties 파일에서 Proxy_Busy_buffers_size의 값을 512K로 업데이트합니다.
    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. 에지 라우터 구성요소를 백업합니다.
  3. 다음 명령어를 실행하여 apigee-nginx 1.2.x로 업그레이드합니다.
  4. sudo yum update apigee-nginx
  5. /opt/apigee/nginx/conf.d.의 파일 *.bad개 모두 삭제
  6. Edge-router 구성요소를 다시 시작합니다.