2010-01-27 10 views
7

그래서 나는 CouchDB를 백엔드로 사용하는 앱을 가지고 있습니다. 소파는 아직 보안/사용자 모델이 없기 때문에 기본적으로 누구나 레코드 및 심지어 전체 데이터베이스 삭제와 같은 작업을 수행 할 수 있습니다. 그러나 GET 요청에만 액세스를 제한하면 훨씬 안전 해집니다.http 동사 액세스를 제한하는 역방향 프록시로 nginx

나는 리버스 프록시로 nginx를 앞에 놓을 수 있기를 바랬지 만, 동사가 들어오는 동사를 기반으로 요청을 필터링 할 수있는 옵션을 찾을 수 없습니다. 파운드가 이것을 수행하므로이 경로를 생각하고 있습니다. , 우리는 이미 nginx를 광범위하게 사용하고 있으며 믹스에 다른 기술을 추가하지 않아도 좋을 것입니다. 이것이 일어날 수있는 옵션이 있다면 누구나 아는가?

Apache에서 mod_proxy 옵션을 사용하기로 결정했습니다. 어떤 아이디어?

답변

8

$request_method 변수에서 HTTP 요청 유형에 액세스 할 수 있습니다. 따라서 :

location/{ 
    if ($request_method = 'GET') { 
    proxy_pass couchdb_backend; 
    } 
} 
+0

달콤한, 감사 임마! –

14

대신 limit_except 지정 문을 사용해보십시오. if is evil이기 때문에 if을 사용하지 않는 것이 좋습니다.

limit_except GET { 
    deny all; 
} 

Reference