2

配置

我正在运行 Windows Server 2012,XAMPP 安装在C:\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

其中, lan​​ding.mydomain.com从 Windows Azure 重定向到公共虚拟 IP。


问题

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

所以我尝试在hosts中使用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 但它不起作用。它只会打开我的本地主机(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,它再次重定向到我的主页(服务器本地主机)

Listen 255.255.255.254:80

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

主持人>>

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

并离开了虚拟主机。

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)。

4

0 回答 0