2016-06-14 5 views
2

HTTP 프록시 서버로 Nginx를 사용하고 싶습니다.여러 개의 RESTful 엔드 포인트로 라우팅하는 Nginx

백엔드에는 RESTful API를 각각 노출하는 Java로 작성된 3 개의 서로 다른 응용 프로그램이 있습니다. 모든 응용 프로그램에는 API에 고유 한 접두사가 있습니다. 예를 들어

: 프론트 엔드에

APP 1 - URI prefix: /api/admin/** 
APP 2 - URI prefix: /api/customer/** 
APP 3 - URI prefix: /api/support/** 

, 우리는 그 URI의에 SPA 페이지 제작 요청이 있습니다.

Nginx에게 URI 접두어에 따라 HTTP 요청을 라우팅하도록 지시하는 방법이 있습니까?

미리 감사드립니다.

답변

3

나는 당신이 여러 개의 uri 접두사 각각에 따라 경로를 재 지정하기 위해 nginx 프록시 포워딩을 사용할 수 있다고 확신한다. 나는 nginx와 프록시 포워딩을 사용했다. 귀하의 예는 내가 URI 접두사에 대한 구체적 정보를 제공하는 페이지에서 적응 (나는 당신의 비교를 위해 여기에 해당 페이지에서/foo는 항목을 보존 한) :

https://serverfault.com/questions/379675/nginx-reverse-proxy-url-rewrite

도 참조 (proxy_redirect에서 proxy_pass의 차이를 지적

server { 
listen   80; 
server_name  www.example.com; 

location /api/admin { 
    proxy_pass http://localhost:3200/; 
} 

location /api/customer { 
    proxy_pass http://localhost:3200/; 
} 

location /api/support { 
    proxy_pass http://localhost:3200/; 
} 

location /foo { 
    proxy_pass http://localhost:3200/; 
} 

}

:), 코드와 http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass

, 위치가 같은 것을 할 것

필자가 언급 한 링크에서 접두사 다음에 야생 카디 딩을 가능하게하는 각 위치 지시문 끝에 슬래시를 적어 둡니다. 물론 각 경로가 리디렉션되는 URL은 모두 동일하지 않아도됩니다 (예 : localhost : 3200).

+0

굉장! 감사! 이것은 내가 찾고 있었던 것이다 :) – dfanaro