子域,nginx和godaddy

子域,nginx和godaddy,nginx,subdomain,Nginx,Subdomain,以下是先决条件: 我已经在godaddy注册了domainexample.com 我在8080端口上运行了一个带有几个应用程序的Tomcat。8080端口对世界来说是隐藏的 我想将subdomain.example.com映射到服务器:8080/subdomain。我希望将来可以进行类似的映射(subdomain2.example.com到server:8080/anotherContext,例如) example.com应该映射到server:8080/mainPageApp 所有其他应用程

以下是先决条件:

  • 我已经在godaddy注册了domain
    example.com
  • 我在
    8080
    端口上运行了一个带有几个应用程序的Tomcat。8080端口对世界来说是隐藏的
  • 我想将
    subdomain.example.com
    映射到
    服务器:8080/subdomain
    。我希望将来可以进行类似的映射(
    subdomain2.example.com
    server:8080/anotherContext
    ,例如)
  • example.com
    应该映射到
    server:8080/mainPageApp
  • 所有其他应用程序都应该可以通过其上下文进行访问:
    example.com/app
    ->
    server:8080/app
目前,我只配置了godaddy(我不知道这是否好):

你能帮我处理这个案例的nginx配置吗?这是我的,但它发送无限重定向:

server {
    listen       80;
    server_name  localhost;

    location / {
        root   html;
        index  index.html;
    }
}
server {
    listen       80;
    server_name  subdomain.localhost;

    location / {
        proxy_pass http://127.0.0.1:8080/subdomain;
    }
}

嗯。我得到了这份工作。不确定解决方案是否正确,但:

首先,我需要在Tomcat中设置一个子域

域配置与问题中的一样-它很好


最后,我把
subdomain.war
放到我的Tomcat的
webapp
目录中,它就像一个魔咒

向前看,您可以将
proxy\u set\u头
放入它们自己的文件(
proxy.conf
),并将其作为宏包含在每个位置块中。您还可以为godaddy配置一个*作为通配符dns,将每个子域指向您的ip地址。这是非常有用的测试。最后一个愚蠢的把戏是,如果这是一个本地框,或者你需要某种本地测试,你可以在godaddy配置dns指向
127.0.0.1
。哇!最后一个技巧很酷。我使用了
etc/hosts
文件来处理这个问题。是的,如果你在处理Twitter/Facebook oAuth,它工作得很好。您只需在指向“localdev.domain.com”的每个节点上创建备用“测试”API键,在godaddy上将其设置为127.0.0.1,然后您的整个团队就可以处理该问题,而无需处理主机。(这很烦人,因为你总是忘记停用那里的某些东西。你总是这样做!)
<Host name="subdomain.example.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
    <Context path="" docBase="subdomain" />
</Host>
server {
    listen       80;
    server_name  example.com;

    location / {
        root   /path/to/domain/root;
        index  index.html;
    }
}

server {
    listen       80;
    server_name  subdomain.example.com;

    location / {
        proxy_pass        http://subdomain.example.com:8080;
        proxy_set_header  Host             $http_host;
        proxy_set_header  X-Real-IP        $remote_addr;
        proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
    }
}