我有两个应用程序,一个是www.myexample.com
,另一个是blog.myexample.com
.我正在使用PHP和Apache.
现在,我想www.myexample.com
在我的机器的端口82和blog.myexample.com
同一台机器上的端口83上运行.如何配置apache和/或PHP脚本,以便在正确提供请求请求时?
编辑:感谢所有回复的人,但我担心我不明白这个问题 - 我的坏!
我真正想要的是模拟www.myexample.com和blog.myexample.com位于不同机器上的条件.因此,当请求进入时,网关服务器(也是托管www.myexample.com的服务器)将检查这是对www.myexample.com或blog.myexample.com的请求,并进行必要的重新路由.
这该怎么做?谢谢.
我将假设您有自己的理由希望这两个站点(www
和blog
)在不同的端口上运行 - 并且在不同的进程中.如果这不是您想要的,例如您不希望有两个不同的进程,那么拥有不同的端口可能不是您想要的:使用VirtualHost
相反,共同托管端口上相同的apache + php实例中的两个域80. 否则,请继续阅读.
假设您的两个apache + php进程分别在localhost:82和localhost:83上进行侦听,请启动第三个仅限apache的进程作为反向代理.让反向代理apache实例侦听来自Internet的端口80上的请求,具有两个虚拟主机定义.第一个虚拟主机定义www
将转发请求到localhost:82,而第二个虚拟主机定义blog
将转发请求到locahost:83,例如:
NameVirtualHost *:80 # wwwServerName www.myexample.com ProxyPass / http://localhost:82/ ProxyPassReverse / http://localhost:82/ # blogServerName blog.myexample.com ProxyPass / http://localhost:83/ ProxyPassReverse / http://localhost:83/
我使用代理来处理这类事情.
在我的例子中,我在端口80上运行了apache 1.3,但我需要svn存储库在apache 2.2上运行,而且我不想每次都在域的末尾键入:82.所以我在apache 1.3(端口80)上进行了代理重定向:
ServerName svn.mydomain.com ServerAlias svn ServerAdmin my@email.com ProxyPass / http://svn:82/