2016-10-13 1 views
0

내 CDN으로 원점 가져 오기에 대한 수신기로 server_name을 만들어야합니다.NGINX multiple server_name, 각 server_name에 robots.txt 파일이 있습니까?

CDN은 origin.mydomain.com에서 끌어 싶어

이미 모든 재 작성, 규칙 등을 전시하는 www.mydomain.com에서 코드 라인의 수백이 있고, 나는이 모든 것을 사용할 필요가

다시 코드.

내 쉬운 솔루션을 가지고하는 것입니다

서버 _ www.mydomain.com origin.mydomain.com

쉽게 Nginx에는 "기원"하위 도메인에 대한 요청을 수신합니다.

내 두려움은 Google이 하위 도메인을 발견하여 크롤링하기 시작한다는 것입니다. 어떻게 든 "원산지"하위 도메인에서 Google을 차단하고 싶습니다. 여러 개의 server_name을 선언 한 이후로 라이브 사이트와 동일한 루트 폴더를 사용하기 때문에 robots.txt 파일을 어딘가에 배치 할 수 있는지 확신 할 수 없습니다.

쉬운 방법이 있나요?

모든 의견 감사합니다.

건배 라이언

답변

0

사용이 개 server 블록과는 공통 ​​코드에 끌어 오기 include 지시어를 사용합니다. 예를 들어 :

server { 
    server_name www.mydomain.com; 
    include /path/to/common/config; 

    location = /robots.txt { 
     root /path/to/friendly/dir; 
    } 
} 
server { 
    server_name origin.mydomain.com; 
    include /path/to/common/config; 

    location = /robots.txt { 
     root /path/to/unfriendly/dir; 
    } 
} 

그래서 당신은 다른 디렉토리에 두 robot.txt 파일이 - 또는 다른 로컬 파일에 URI를 매핑 rewrite ... last를 사용합니다.

+0

좋아요, 포함시킬 수있는 외부 코드에 모든 재 작성 등을 포함하면 간단 해집니다. include에는 형식이 있어야합니까? 아니면 그냥 빈 설정 파일에 잘라내거나 붙여 넣을까요? – user3273784

+0

[documentation] (http://nginx.org/en/docs/ngx_core_module.html#include)에는 "포함 된 파일은 구문 적으로 올바른 지시문 및 블록으로 구성되어야합니다"라고 나와 있습니다. 기본적으로 잘라 내기 및 붙여 넣기. –

+0

흠. 오류가 발생했습니다. nginx : [emerg] "location"지시어는 여기 /usr/local/etc/nginx/conf.d/rewrite_rules.conf:7에 허용되지 않습니다. – user3273784

관련 문제