2013-11-20 11 views
3

이전 연구를 수행했지만 하위 도메인을 허용하도록 nginx를 올바르게 구성하는 방법을 찾지 못하는 것 같습니다.하위 도메인으로 Nginx 구성

나는 현재 제대로 mydomain.com에 대해 구성,하지만 analytix.mydomain.com 있습니다

server { 
     listen  80; 
     server_name  *.mydomain.com; 
     access_log /home/ubuntu/virtualenv/mydomain/error/access.log; 
     error_log /home/ubuntu/virtualenv/mydomain/error/error.log warn; 
     connection_pool_size 2048; 

     fastcgi_buffer_size 4K; 
     fastcgi_buffers 64 4k; 

     root /home/ubuntu/virtualenv/mydomain/homelaunch/; 

     location /static/ { 
      alias /home/ubuntu/virtualenv/mydomain/homelaunch/static/; 
     } 

     location/{ 
      proxy_pass http://127.0.0.1:8001; 
      proxy_set_header Host $host; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"'; 
     } 
    } 

server_name 선언이 좋은 <anythinghere>.mydomain.com을 받고있다. 내가 analytix.mydomain.com에 액세스하는 경우

는, 그것의 이미 나는 그것을에 액세스하기 위해 노력하고있어이 서버에 propogated되어 mydomain.com

도메인에서 기존 응용 프로그램에서 던지는 때문에, 잘하는 HTTP 500 디폴트가 발생합니다.

analytix.mydomain.com의 내용을 저장할 경로를 지정하려면 어떻게해야합니까? 위의 그림과 같이 nginx conf에서 속성을 변경해야한다고 가정합니다.

답변

18

server_name을 원하는 도메인으로 설정 한 server 블록을 새로 만듭니다. 다음의 nginx의 일반 디렉토리 및 파일 구조는 같습니다

/etc/nginx 
| 
|---- /sites-available 
|  | 
|  |---- default.conf 
| 
|---- /sites-enabled 
     | 
     |---- default.conf -> ../sites-available/default.conf 

당신은 당신의 하위 도메인에 대한 그것의 새로운 server 블록과 sites-available에 새 파일을 생성하고이 새 파일에 대한 심볼릭 링크를 만들어야합니다 sites-enabled. nginx를 간단히 다시로드하면 새 서버가 작동합니다. 다음과 같이

새 파일 구조는 같습니다

/etc/nginx 
| 
|---- /sites-available 
|  | 
|  |---- analytix.conf 
|  | 
|  |---- default.conf 
| 
|---- /sites-enabled 
     | 
     |---- analytix.conf -> ../sites-available/analytix.conf 
     | 
     |---- default.conf -> ../sites-available/default.conf 

을 여기 서버에 매우 빠르게 직접이 작업을 수행하기 위해 관련된 명령입니다 :

# cd /etc/nginx/sites-available 
# cat default.conf > analytix.conf 
# editor analytix.conf 

변경 라인 server_name analytix.mydomain.com-server_name *.mydomain.com;가.

# ln -s analytix.conf ../sites-enabled/ 
# nginx -t 

구성이 정상적으로 이루어 졌다면 계속 진행하십시오.

# service nginx restart 

위의 명령은 모두 데비안 기반 배포판 용이며 다른 명령을 사용하면 일부 명령이 다를 수 있습니다. 서버에 다른 소프트웨어의 내용을 제공하기 위해


당신은 당신의 구성에서 root 지침을 변경하고 다른 소프트웨어의 문서 루트를 가리 키도록해야합니다.

# editor analytix.conf 

변경 root /path/to/other/software;-root /home/ubuntu/virtualenv/mydomain/homelaunch/;과의 nginx를 다시로드합니다.

# nginx -t && service nginx reload 

이제 새로운 응용 프로그램이 제공됩니다.

+1

+1. 멋진 설명. – slayedbylucifer

+1

답변 해 주셔서 감사합니다. 내가 가진 유일한 문제는'''''-s analytix.conf ... '이다./ sites-enabled /'''하지만 파일을 절대 경로로 변경했을 때 예상대로 작동했습니다 -''-s /etc/nginx/sites-available/analytix.conf ../ sites-enabled /'' ' –

+0

답변에 표시된대로 올바른 디렉토리에 있어야합니다. – Fleshgrinder

관련 문제