首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将不同子域请求重定向到不同端口

如何将不同子域请求重定向到不同端口
EN

Stack Overflow用户
提问于 2009-02-26 06:29:31
回答 5查看 24.5K关注 0票数 17

我有两个应用程序,一个是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的请求,并执行必要的重新路由。

该怎么做呢?谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-02-26 07:12:35

我假设您有自己的理由希望这两个站点(wwwblog)在不同的端口和不同的进程中运行。如果这不是您想要的,例如,您不想有两个不同的进程,那么拥有不同的端口可能也不是您想要的:使用VirtualHost,在端口80上的同一个apache+php实例中共同托管两个域。否则,请继续阅读。

假设您的两个apache+php进程分别监听localhost:82和localhost:83,启动第三个仅限apache的进程作为反向代理。使用两个虚拟主机定义,让反向代理apache实例侦听来自internet的端口80上的请求。第一个虚拟主机定义www将请求转发到本地主机:82,而第二个虚拟主机定义blog将请求转发到本地主机:83,例如:

代码语言:javascript
复制
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>
票数 35
EN

Stack Overflow用户

发布于 2009-02-26 07:19:31

我使用代理来处理这类事情。

在我的示例中,我让Apache1.3在端口80上运行,但我需要svn存储库才能在Apache2.2上运行,而且我不想每次都在域的末尾键入:82。因此,我在apache 1.3 (端口80)上进行了代理重定向:

代码语言:javascript
复制
<VirtualHost *:80>
  ServerName svn.mydomain.com
  ServerAlias svn
  ServerAdmin my@email.com

  <IfModule mod_proxy.c>
    ProxyPass / http://svn:82/
  </IfModule>
</VirtualHost>
票数 5
EN

Stack Overflow用户

发布于 2016-01-18 17:33:30

在终端上运行以下命令行(正确指定您的域名和子域名)

代码语言:javascript
复制
sudo nano /etc/apache2/sites-available/subdomain.domain.com.conf 

粘贴以下代码并根据需要进行更改

代码语言:javascript
复制
<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>

在终端上运行以下代码行(请正确指定您的域名和子域名)

代码语言:javascript
复制
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod subdomain.domain.com.conf
sudo service apache2 restart
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/589368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档