Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从不同的域转到不同的端口_Php_Apache_Subdomain - Fatal编程技术网

Php 从不同的域转到不同的端口

Php 从不同的域转到不同的端口,php,apache,subdomain,Php,Apache,Subdomain,我有两个“假设”域。myname.me和myproduct.co.nz。我有四台服务器连接到我的公共ip地址的端口44、45、80和90 这两个域都将其A记录设置为my ip,因此myname.me:44和myproduct.co.nz:44会显示相同的页面 我想让myname.me的访问者看到服务器上在端口90上运行的页面,但不想让他们看到地址栏中的“:90” 我还希望访问a.myproduct.co.nz的用户可以看到服务器上在端口44上运行的页面,访问b.myproduct.co.nz的用

我有两个“假设”域。myname.me和myproduct.co.nz。我有四台服务器连接到我的公共ip地址的端口44、45、80和90

这两个域都将其A记录设置为my ip,因此myname.me:44和myproduct.co.nz:44会显示相同的页面

我想让myname.me的访问者看到服务器上在端口90上运行的页面,但不想让他们看到地址栏中的“:90”

我还希望访问a.myproduct.co.nz的用户可以看到服务器上在端口44上运行的页面,访问b.myproduct.co.nz的用户可以看到服务器上在端口45上运行的页面,两者都没有看到:44或:45(例如,我希望所有页面都在80上运行)

服务器都是带有php的apache2

我想这可能与一些相关的东西,但我不确定它将如何与2台服务器一起工作

我真的很感激任何帮助。
~JJ56

我想回答你的问题,但我必须问你为什么要用这种方式配置服务器。看起来您真正想做的是在这个共享IP地址上配置多个域(或
基于名称的虚拟主机

如果是这样的话,那么在Apache中就很容易设置了。每个域都需要在httpd.conf或vhosts.conf中定义(或在catch-all-include目录中定义,具体取决于您的安装;请参阅您的文档)。非常基本的设置如下所示:

<VirtualHost *:80>
    DocumentRoot /var/www/mywordpressblog.co.uk/public_html
    ServerName www.mywordpressblog.co.uk
</VirtualHost>

DocumentRoot/var/www/mywordpressblog.co.uk/public_html
服务器名www.mywordpressblog.co.uk

祝您好运。

您在端口80上运行一台服务器,并使用基于名称的vhost,并且不与任何其他公共端口玩任何游戏。如果需要不同的域来访问不同的物理服务器,可以设置mod_proxy来代理这些服务器的请求,或者在端口80上设置squid或varnish来执行相同的操作。PHP根本不在其中。

在“port-80机器”上设置。然后在每个虚拟主机定义中使用ProxyPass(from),将请求从“端口80计算机”传递到防火墙后面的其他计算机

它可能看起来如下所示:

<VirtualHost *:80>
    DocumentRoot /var/www/mywordpressblog.co.uk/public_html
    ServerName www.mywordpressblog.co.uk
</VirtualHost>
(注意:主服务器(“端口80服务器”)必须能够连接到内部网络上的其他服务器——我使用了数字地址(192.168.1.5和192.168.1.6))


DocumentRoot/var/www/myname.me/public\u html
ServerName myname.me
代理请求关闭
命令拒绝,允许
通融
ProxyPass/http://192.168.1.6/
ProxyPassReverse/http://192.168.1.6/
DocumentRoot/var/www/myproduct.co.nz/public\u html
ServerName myproduct.co.nz
代理请求关闭
命令拒绝,允许
通融
ProxyPass/http://192.168.1.5/
ProxyPassReverse/http://192.168.1.5/
首先设置没有代理相关内容的虚拟主机。确保您可以在两个vhost中的每个vhost中成功解析测试页。然后(并且只有那时)添加代理的东西,并开始解决这个问题