我正在使用一个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服务器的新手,任何评论或建议都会非常感激,即使你觉得很明显:-)。
答案 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”。
试试这个,让我们知道它是怎么回事。祝你好运!