指向apache服务器中不同端口的Multiples域

时间:2010-10-10 03:18:00

标签: apache port

我正在使用一个Web开发框架,该框架在apache服务器端口中发布其应用程序:8080,8081,8082等。

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

我想要实现的是,我的域指向“port”,其应用程序在我的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。

您认为对此有什么好的解决方案? (我希望我的问题很清楚,因为我不是一个英语母语人士,你可以看到)

环境:Linux Debian 5 Lenny,Apache Server 2.2.9-10 + lenny8

由于我是apache服务器的新手,任何评论或建议都会非常感激,即使你觉得很明显:-)。

1 个答案:

答案 0 :(得分:5)

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

  • 客户端向http://mydomain1.com(端口80)发出HTTP请求 - 然后转到服务器上的端口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>

以上定义导致所有HTTP请求进入端口80,在其“服务器路径”标题中具有“mydomain1.com”(当有人键入包含服务器名称的URL时,这是标准行为;不要担心关于它)或任何提到的别名,反向代理“localhost:8080”。

试试这个,让我们知道它是怎么回事。祝你好运!