我正在使用一个web开发框架,在apache服务器端口发布它的应用程序:8080,8081,8082等
例如,MyApp1在localhost: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。
你认为这是一个很好的解决scheme? (我希望我的问题很清楚,因为我不是以英语为母语的人)
环境:Linux Debian 5 Lenny,Apache Server 2.2.9-10 + lenny8
因为我是一个Apache服务器的新手,任何评论或build议将非常赞赏,即使你认为是明显的东西:-)。
为了确保我明白你的意思:你想 –
http://mydomain1.com
(端口80)发送HTTP请求 – 然后转到服务器上的端口8080; http://mydomain2.com
(端口80)发送HTTP请求 – 然后转到服务器上的端口8081。 在Apache中唯一合理的方法就是使用所谓的反向代理 ( Reverse Proxy) ,在这里解释: 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”。
试试这个,让我们知道它是如何去的。 祝你好运!