2

我在与我在家庭网络上运行的第二台服务器的会话方面遇到了一些问题。我这样做是出于一种爱好,并在它们正式上线之前开发新的应用程序。

我有一个指向我的 ip 的域并成功解析到服务器 1,但是在配置 mod_proxy 以将特定域发送到服务器 2 之后,我收到了一些不需要的错误和结果。我希望第二台服务器充当普通服务器并通过第一台服务器,因为我当前的路由器只能将端口 80 发送到一个本地 ip 而不能过滤它。

我的第二台服务器有 a.mydomain.com,它可以正常解析,但是当我尝试在第二台服务器上使用 Web 应用程序时,出现以下错误

Warning: You are now accessing Mydomain from http://10.0.1.38/, but Mydomain has been configured to run at this address: http://a.mydomain.com/

我可以解决这个问题吗?

此外,当尝试通过 a.mydomain.com/phpmyadmin 访问 phpmyadmin 时,它会在登录后更改为 a.mydomain.com/proxy/phpmyadmin,我可以更改它以使其基本无缝且不添加 /proxy。

这是我的服务器 1 的虚拟主机配置

<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName www.server1domain.net
</VirtualHost>

<VirtualHost *:80>
ProxyPreserveHost On
ServerName a.mydomain.com
       <Proxy *>
        Order deny,allow
        Allow from all
       </Proxy>
ProxyPass / http://10.0.1.38/
ProxyPassReverse / http://10.0.1.38/
</VirtualHost> 

这是服务器 2 的虚拟主机配置

<VirtualHost *:80>
    ServerAdmin admin@mydomain.com
    DocumentRoot /var/www/mydomaincom
    ServerName a.mydomain.com
</VirtualHost>

我正在运行 Centos 6.4

4

1 回答 1

0

好吧,我终于想通了,有些东西现在有点明显,但这适用于处于类似情况的其他人。

所以早些时候在我的 http.conf 我有这个

<IfModule mod_proxy.c>
   ProxyRequests Off
   <Proxy *>
      Order deny,allow
      Allow from all
   </Proxy>

# destination directory

   ProxyPass /proxy http://10.0.1.38
   ProxyPassReverse /proxy http://10.0.1.38
</IfModule> 

这似乎有两个问题,它似乎添加了 /proxy/ 目录并且也是错误的,因为 ip 没有尾部斜杠,因此我将其更改为

<IfModule mod_proxy.c>
   ProxyRequests Off
   <Proxy *>
      Order deny,allow
      Allow from all
   </Proxy>
</IfModule>

我的第一台服务器的 http.conf vhost 配置现在看起来像这样

<VirtualHost *:80>

ProxyPreserveHost On

ProxyPass / http://10.0.1.38/

ServerName a.mydomain.com
</VirtualHost> 

如果你忘记了 ip 后面的斜杠,你很可能会遇到 502 错误:Could not resolve dns

第二台服务器虚拟主机配置如下所示

<VirtualHost *:80>
    ServerAdmin admin@mydomain.com
    DocumentRoot /var/www/mydomain
    ServerName a.mydomain.com
</VirtualHost>

希望能帮助其他有类似问题的人。

于 2013-03-25T16:26:53.800 回答