2010-10-10 41 views
1

我与一个Web开发框架,发布其应用在Apache服务器端口的工作:8080,8081,8082,等倍数域指向型动物端口Apache服务器

例如MyApp1运行在本地主机:8080, MyApp2在localhost:8081中运行,依此类推。

我想实现的是我的域名指向一个“端口”,其应用程序在我的apache web服务器上运行,例如, www.mydomainclient1.com应指向8080端口,www.mydomainclient2.com应指向8081端口。

我所做的是我已进入我的域名提供商网站,然后去总的DNS控制,并指出这些域到我的专用服务器IP。

现在,我的域指向mydedicatedserverIP,因此当我执行www.mydomainclient1.com和www.mydomainclient2.com时,它们都访问mydedicatedserverIP,默认情况下为80端口。

我试图解决的情况是:

我想有www.mydomainclient1.com直接指向mydedicatedserverIP:8080和www.mydomainclient2.com指着mydedicatedserverIP:8081。

你认为这是一个很好的解决方案吗? (我希望我的问题是非常明显的,由于我没有,你可以看到一个以英语为母语)

环境:Debian的Linux的莱尼5,Apache服务器2.2.9-10 + lenny8

我作为一个新手在Apache服务器上的任何评论或建议将非常赞赏,即使你认为是明显的东西:-)。

回答

5

为了确保我明白你的意思:你想 -

  • 客户端发出HTTP请求http://mydomain1.com(80端口) - 然后去你的服务器在8080端口上;
  • 客户端向http://mydomain2.com(端口80)发出HTTP请求 - 然后转到服务器上的端口8081。

唯一合理的方法(我知道的),你可以在Apache中实现这一目标是通过什么叫做反向代理,这里解释:http://httpd.apache.org/docs/current/mod/mod_proxy.html

一言以蔽之:定义两个基于域名虚拟主机侦听端口80,每个反向代理请求到“隐藏”服务器。这两个定义几乎完全相同......这里是其中一个定义的草图,你应该能够得出另一个的结论。

<NameVirtualHost *:80> 
    ServerName mydomain1.com 
    ServerAlias www.domain1.com 
    ... *other aliases as you wish* ... 
    ProxyPass/http://localhost:8080/ 
    ProxyPassReverse/http://localhost:8080/ 
</NameVirtualHost> 

上述定义会导致未来在端口80上的所有HTTP请求,在他们的“服务器路径”头“mydomain1.com”(这是标准的行为时,在包含服务器名称的URL有人类型,不用担心关于它)或任何提到的别名,将被反向代理为“localhost:8080”。

试试这个,让我们知道它是如何去的。祝你好运!