2

如何将子域重写为 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 时被重写为 domain.com/app1。我怎样才能做到这一点?

提前致谢。

4

2 回答 2

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;
        ...
    }
}
于 2012-01-02T17:35:17.310 回答
1

我认为您不需要 - 您可以添加另一个服务器部分,例如:

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

而不是 alocation /app1后跟重定向。希望有帮助。

于 2011-12-30T22:14:12.643 回答