2013-07-10 7 views
30

저는 Nginx를 처음 사용하고 있으며 하위 도메인을 작동 시키려고합니다. 내가하고 싶은 무엇nginx - 두 개의 하위 도메인 구성

내 도메인을하고 추가 (의이 example.com를 부르 자) :

  • sub1.example.com,
  • sub2.example.com는, 또한
  • www.example.com 사용할 수 있습니다.

나는 아파치로 이것을하는 방법을 알고 있지만, Nginx는 진짜 머리 긁적 자다.

내가

나의 현재 /etc/nginx/sites-enabled/example.com 데비안 6을 실행 해요 :

server { 
    server_name www.example.com example.com; 
    access_log /srv/www/www.example.com/logs/access.log; 
    error_log /srv/www/www.example.com/logs/error.log; 
    root /srv/www/www.example.com/public_html; 

    location/{ 
     index index.html index.htm; 
    } 

    location ~ \.php$ { 
     include /etc/nginx/fastcgi_params; 
     fastcgi_pass 127.0.0.1:9000; 
     fastcgi_index index.php; 
     fastcgi_param SCRIPT_FILENAME /srv/www/www.example.com/public_html$fastcgi_script_name; 
    } 
} 

example.com과 www.example 서비스를 제공하기 위해 노력하고 있습니다. com.

내가 좋아하는 동일한 파일에 두 번째 서버 블록을 추가하는 것을 시도했다 :

server { 
     server_name www.example.com example.com; 
     access_log /srv/www/www.example.com/logs/access.log; 
     error_log /srv/www/www.example.com/logs/error.log; 
     root /srv/www/www.example.com/public_html; 

     server { 
      server_name sub1.example.com; 
      access_log /srv/www/example.com/logs/sub1-access.log; 
      error_log /srv/www/example.com/logs/sub1-error.log; 
      root /srv/www/example.com/sub1; 
    } 
     location/{ 
      index index.html index.htm; 
     } 

     location ~ \.php$ { 
      include /etc/nginx/fastcgi_params; 
      fastcgi_pass 127.0.0.1:9000; 
      fastcgi_index index.php; 
      fastcgi_param SCRIPT_FILENAME /srv/www/www.example.com/public_html$fastcgi_script_name; 
     } 
} 

없음을 빕니다. 어떤 아이디어? 나는 모든 의견을 고맙게 여길 것이다.

+0

필자는 다음과 같이 언급해야합니다. 궁극적 인 목적은 sub1.example.com이 example.com/sub1 및 sub2.example.com으로 이동하여 example.com/sub2로 이동하는 것입니다. 나는 그것이 의미가 있기를 바랍니다. – boredemt

답변

43

실수가 서버 블록 내부 서버 블록을두고있다, 당신은 메인 서버 블록이 다음 서브 도메인을 그냥 대신에 다음 줄을 추가해야

server { 
    server_name example.com; 
    # the rest of the config 
} 
server { 
    server_name sub1.example.com; 
    # sub1 config 
} 
server { 
    server_name sub2.example.com; 
    # sub2 config 
} 
4

을위한 새로운 하나를 열고 닫아야합니다 귀하의 서버 이름

server_name xyz.com *.xyz.com; 

그리고 Nginx를 다시 시작하십시오. 그게 전부 야.

+9

하위 도메인이 www.example.com 위치의 리소스가 아닌 서버의 다른 리소스를 가리 키도록하려면 어떻게해야합니까? – courtyen

관련 문제