将虚拟主机指向不同的内部地址

时间:2014-07-21 14:21:37

标签: apache webserver virtualhost

更新说明

我在服务器上设置了虚拟主机。当您从外部IP连接到我们的服务器时,下面的设置工作正常。因此,只要我使用手机或任何其他外部IP地址,我就可以毫无问题地联系http://subdomain.ourcompany.com/index.php

现在,我希望能够使用192.168.0.0范围内的内部服务器地址访问此特定虚拟主机。所以我想键入类似http://192.168.0.100:10002/index.php的内容并到达同一页面,而我在一台本地地址为192.168.0.106的机器上。

已经尝试

我阅读了所有文档和相关问题并尝试使用Proxypass指令(不确定我是否理解正确),我尝试更改本地计算机上的hosts文件,并尝试使用内部设置基于IP的vhost服务器地址(使用)。后者部分成功,我可以访问服务器。但是不可能使用,因为有多个命名的vhost活动,它会使它们无法访问,因为特定的IP在通配符*之前。

到目前为止,这是我的设置。你能发现我的任何错误吗? 目前任何可以使vhost在内部无法访问的解决方案都可以作为临时解决方案。

当前设置

<VirtualHost *:80>
    DocumentRoot /home/userx/public_html
    ServerName subdomain.ourcompany.com
    ServerAdmin webmaster@localhost
    DirectoryIndex index.php

    <Directory />
            Options FollowSymLinks
            AllowOverride All
    </Directory>
    <Directory /home/userx/public_html/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    ProxyPass / http://localhost:10002/
    ProxyPassReverse / http://localhost:10002/

</VirtualHost>

1 个答案:

答案 0 :(得分:0)

我不太清楚我是否理解你所得到的东西。您显然在端口80上有一个虚拟主机,但您是如何访问它的还不清楚:

a)你在某个地方&#34;在外面&#34;您的网络和浏览器中的网址

http://yourserver:10002/some/page/on/server

并且您希望透明地重写该请求,以便浏览器接收

托管的页面
http://yourserver:80/some/page/on/server

或b)反过来?

如果它是a),那么您的代理通行证/ vhost内容已被撤消。您需要设置<VirtualHost *:10002>,以便为您的外部用户提供端口10002。然后使用proxypass将该流量重定向到等效的:80站点。另外,还有一个端口80 vhost来处理这些内部重定向的请求。

如果它是b),那么它应该有效,但您仍然需要为端口<VirtualHost>设置10002