2011-03-09 5 views
0

사용자 하위 도메인을 설정하여 특정 폴더의 콘텐츠 (www.example.com/username)를 username.example.com (github 페이지와 동일)에서 제공하려고합니다.Nginx 사용자 하위 도메인, 내가 proxy_pass해야합니까?

Nginx 재 작성을 살펴 봤지만 브라우저에서 리디렉션하지 않으려 고합니다. 도메인을 username.example.com으로 지정하고 싶습니다. 어쨌든 this question에 대한 의견은 호스트를 다시 쓸 수없고 프록시 만 다시 쓸 수 있다고 말합니다. proxy_pass을 설정하려고했지만 모든 설명서와 예제에서 다른 호스트 나 포트의 서비스에 프록시를 사용하는 것으로 나타났습니다.하지만 제 경우에는 동일한 호스트의 다른 위치로 프록시를 지정하고 포트.

이 문제를 해결할 수있는 적절한 방법입니까? 그렇다면 올바른 Nginx 구성 구문은 무엇입니까?

server { 
    location/{ 
    # simple version 
    if ($host ~ "user1.example.com") { 
     proxy_pass http://example.com/user1; 
    } 

    # generic version 
    if ($host ~ ^(.+)\.example\.com$) { 
     proxy_pass http://example.com/$1; 
    } 


    } 
} 

그러나 나는, 그래도 난 결과의 확실하지 않다 때문에 프록시 URL에 "/ USER1"일부의 예상대로 작동합니다 의심이 같은

답변

0

뭔가 거의 작동합니다.

확실하게 작동하는 또 다른 방법은 동일한 nginx 서버로 모든 응용 프로그램을 제공하거나 주어진 포트를 다른 nginx 각각에 할당하는 것입니다. 나는이 대학 프로젝트에 있었고, 난 그것을 처리하기 위해 특정 플러그인을 사용했다

server { 
    location/{ 

    if ($host ~ "user1.example.com") { 
     proxy_pass http://127.0.0.1:8000; 
    } 

    if ($host ~ "user2.example.com") { 
     proxy_pass http://127.0.0.1:8001; 
    } 
    } 
} 

마지막 시간도 nginx를하지만이 작업을 수행 할 수있는 몇 가지 플러그인이있을 수 있습니다 : 여기 내가 이런 짓을 했을까하는 방법이다 빠른 검색 후에 아무 것도 발견되지 않았습니다.