2014-09-18 4 views
0

Nginx를 웹 서버로 사용하고 특정 도메인의 특정 디렉터리에 대한 액세스를 거부하려고합니다. 즉, 한 도메인이나 IP 주소에서만 해당 경로/디렉토리에 액세스 할 수있게하십시오.Nginx 다시 쓰기 규칙 : 하나의 주소에서만 디렉터리에 액세스 할 수있게하십시오

예 :

http://domain.com/manager/ => 리디렉션

http://www.domain.com/manager/ => 리디렉션

http://10.10.10.10/manager/ 페이지 ~ 404 페이지 404 => 액세스에게 마지막

이것을 만들 수 있도록 완전한 해결책, 나는이 동위에 접근 할 때 https 연결을 강제하고 싶으면 관절 경로. 내 앞의 예에 따라

:

http://10.10.10.10/manager/ =>는

location/{ 
deny all; 
allow [ip]; 
} 

를 사용

+0

'domain.com'은'10.10.10.10'을 해결합니까? –

+0

아니요,이 질문에 대한 예일뿐입니다. – Oriol

답변

0

가 404 리디렉션을 해결하기 위해

server { 
    listen 80; 
    server_name 10.10.10.10; 

    rewrite ^(.*) https://10.10.10.10$1 permanent; 
} 

(이미 포트 443에 수신 대기의 nginx를 가정) 힘에 https를 해결하려면, 당신은 다음 사항을 사용하여 고려할 수 있습니다 서버 "domain.com"을 수신 기본 설정은

location ~ ^/manager { 
    return 404; 
} 
+0

이 솔루션은 모든 트래픽을 https로 다시 씁니다. 그것은 요청의 일부가 아니 었습니다. – Oriol

0

이것은 내가 찾고 있었던 것입니다 :

server { 
    listen   80; 
    server_name  domain.com; 

    # Redirect path to secure connection 
    location ^~ /manager { 
     rewrite ^/(.*) https://domain.com$1 permanent; 
    } 
} 

server { 
    listen 443; 

    location ^~ /manager { 
     allow 10.10.10.10; 
     deny all; 

     error_page 403 =404 /404.html; 
    } 
}