我有两个应用程序,一个是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的请求,并执行必要的重新路由。
该怎么做呢?谢谢。
发布于 2009-02-26 07:12:35
我假设您有自己的理由希望这两个站点(www
和blog
)在不同的端口和不同的进程中运行。如果这不是您想要的,例如,您不想有两个不同的进程,那么拥有不同的端口可能也不是您想要的:使用VirtualHost
,在端口80上的同一个apache+php实例中共同托管两个域。否则,请继续阅读。
假设您的两个apache+php进程分别监听localhost:82和localhost:83,启动第三个仅限apache的进程作为反向代理。使用两个虚拟主机定义,让反向代理apache实例侦听来自internet的端口80上的请求。第一个虚拟主机定义www
将请求转发到本地主机:82,而第二个虚拟主机定义blog
将请求转发到本地主机:83,例如:
NameVirtualHost *:80
# www
<VirtualHost *:80>
ServerName www.myexample.com
ProxyPass / http://localhost:82/
ProxyPassReverse / http://localhost:82/
</VirtualHost>
# blog
<VirtualHost *:80>
ServerName blog.myexample.com
ProxyPass / http://localhost:83/
ProxyPassReverse / http://localhost:83/
</VirtualHost>
发布于 2009-02-26 07:19:31
我使用代理来处理这类事情。
在我的示例中,我让Apache1.3在端口80上运行,但我需要svn存储库才能在Apache2.2上运行,而且我不想每次都在域的末尾键入:82。因此,我在apache 1.3 (端口80)上进行了代理重定向:
<VirtualHost *:80>
ServerName svn.mydomain.com
ServerAlias svn
ServerAdmin my@email.com
<IfModule mod_proxy.c>
ProxyPass / http://svn:82/
</IfModule>
</VirtualHost>
发布于 2016-01-18 17:33:30
在终端上运行以下命令行(正确指定您的域名和子域名)
sudo nano /etc/apache2/sites-available/subdomain.domain.com.conf
粘贴以下代码并根据需要进行更改
<VirtualHost *:80>
ServerAdmin admin@domain.com
ServerName subdomain.domain.com
ServerAlias subdomain.domain.com
ProxyRequests Off
#ProxyPass / http://localhost:8080/
<Location />
ProxyPreserveHost On
ProxyPass http://domain.com:8080/
ProxyPassReverse http://domain.com:8080/
</Location>
# Uncomment the line below if your site uses SSL.
#SSLProxyEngine On
</VirtualHost>
在终端上运行以下代码行(请正确指定您的域名和子域名)
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod subdomain.domain.com.conf
sudo service apache2 restart
https://stackoverflow.com/questions/589368
复制相似问题