配置apache vhost以从本地网络外部访问域

时间:2013-09-03 11:59:14

标签: apache azure subdomain vhosts

配置

我正在运行Windows Server 2012,并在 C:\ xampp 中安装了XAMPP Apache作为服务运行

我已在 C:\ Windows \ System32 \ Drivers \ etc 中编辑了主机文件,添加如下

127.0.0.1       landing.local

我在 C:\ xampp \ apache \ conf \ extra \ httpd-vhosts.conf

中添加了vhost
NameVirtualHost 127.0.0.1:80
<VirtualHost 127.0.0.1:80>
DocumentRoot C:/xampp/htdocs/
ServerName localhost
ServerAlias localhost
</VirtualHost>

<VirtualHost landing.local:80>
DocumentRoot "C:/xampp/htdocs/landing"
ServerName landing.mydomain.com
ServerAlias landing.mydomain.com
</VirtualHost>

我还在 httpd-vhosts.conf

中的后续行中取消注释
NameVirtualHost *:80

httpd.conf

LoadModule vhost_alias_module modules/mod_vhost_alias.so

Include "conf/extra/httpd-vhosts.conf"

并且Apache配置为侦听端口80。

Listen 80

landing.mydomain.com 从Windows Azure重定向到公共虚拟IP。


问题

当我访问本地http://landing.local/网站时 但是当我尝试从网络内部访问landing.mydomain.com时它不起作用,而是重定向到主localhost网站。

所以我尝试在主机中使用 landing.mydomain.com ,在vHost中使用 landing.mydomain.com

<VirtualHost landing.mydomain.com:80>
DocumentRoot "C:/xampp/htdocs/landing"
ServerName landing.mydomain.com
ServerAlias landing.mydomain.com
</VirtualHost>

这次我可以从网络内部访问 landing.mydomain.com ,但是当我尝试从外部本地网络访问它时,它无法正常工作。

我还尝试编辑主机文件并将 landing.mydomain.com 指向我的公共虚拟IP或内部IP地址。没帮忙......

<VirtualHost landing.mydomain.com:80>
DocumentRoot "C:/xampp/htdocs/landing"
ServerName landing.mydomain.com
ServerAlias landing.mydomain.com
</VirtualHost>

主机文件

255.255.255.255     landing.mydomain.com

其中255.255.255.255是我的公共虚拟IP和255.255.255.254内部IP,但它不起作用。它只会打开我的localhost(mydomain.com的主页)

255.255.255.254     landing.mydomain.com

我还试过

通过编辑httpd.conf

将Apache绑定到公共虚拟IP 255.255.255.255
Listen 255.255.255.255:80

(OS 10049)请求的地址在其上下文中无效。 :AH00072:make_sock:无法绑定到地址255.255.255.255:80 AH00451:没有可用的侦听套接字,关闭

当我绑定到内部IP地址时,Apache确实工作了,但我仍然无法从网络外部访问landing.mydomain.com,它再次被重定向到我的主页(服务器localhost)

Listen 255.255.255.254:80

我从dos开始时也收到了这个警告,但这不是我的问题的原因,那是我从 httpd.conf 取消注释的那条线因为我在板上的某个地方读了它有助于解决一些问题他们的问题,根本没有帮助我,与评论和未注释相同。

主持人&gt;&gt;

127.0.0.1       landing.mydomain.com

使用此配置,我无法从localhost访问子域。我仍然能够从网络外部使用A记录重定向到我的服务器公共虚拟IP。

  

AH00548:NameVirtualHost无效,将在下一次删除   发布C:/xampp/apache/conf/extra/httpd-vhosts.conf:19


解决方案

所以我将主机文件中的IP地址也改为内部IP地址255.255.255.254

255.255.255.254     landing.mydomain.com

将vhost留作。

NameVirtualHost localhost:80
<VirtualHost localhost:80>
DocumentRoot C:/xampp/htdocs/
ServerName localhost
ServerAlias localhost
</VirtualHost>

<VirtualHost landing.mydomain.com:80>
DocumentRoot "C:/xampp/htdocs/landing"
ServerName landing.mydomain.com
ServerAlias landing.mydomain.com
</VirtualHost>

如果有人熟悉Windows Server 2012上的Apache配置,请欣赏任何帮助:)


更新

我忘了提到你不要忘记在Azure平台上配置Windows Server防火墙(允许端口80和443,tcp传入流量)以及端点(tcp 80和443)。

0 个答案:

没有答案