2011-12-27 35 views
1

如何在NGINX中將子域重寫爲應用程序?將位置重寫爲nginx中的子域

我的配置是

server { 
    listen  80; 
    server_name domain.com www.domain.com; 

    location/{ 
      include  uwsgi_params; 
      uwsgi_pass  127.0.0.1:9001; 
      uwsgi_param UWSGI_PYHOME PATH; 
      uwsgi_param UWSGI_SCRIPT wsgi; 
      uwsgi_param UWSGI_CHDIR PATH; 
    } 

    location /app1 { 
      include  uwsgi_params; 
      uwsgi_pass  127.0.0.1:9001; 
      uwsgi_param UWSGI_PYHOME PATH2; 
      uwsgi_param UWSGI_SCRIPT wsgi2; 
      uwsgi_param UWSGI_CHDIR PATH2; 
      uwsgi_modifier1 30; 
    } 
} 

我想在訪問app1.domain.com我被rewrited到domain.com/app1到。我怎樣才能做到這一點?

在此先感謝。

回答

1

我不認爲你需要 - 你可以添加其他的服務器部分像:

server { 
    server_name app1.domain.com; 
    location/{ 
    <uwsgi as before> 
    } 
} 

,而不是一個location /app1隨後重定向。希望有所幫助。

2

您可以只添加子域名服務器的名稱在這種情況下都可以正常運行的域,但用戶不會被重定向,地址欄將顯示子域名:

server { 
    listen  80; 
    server_name domain.com www.domain.com app1.domain.com; 

    location/{ 
      include  uwsgi_params; 
      ... 
    } 
} 

或者,您可以爲重定向到域的子域創建特定的服務器:

server { 
    listen  80; 
    server_name app1.domain.com; 
    rewrite^http://domain.com$request_uri? permanent; 
} 

server { 
    listen  80; 
    server_name domain.com www.domain.com; 

    location/{ 
     include  uwsgi_params; 
     ... 
    } 
}