2011-12-27 39 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; 
     ... 
    } 
}