我们有一台运行IIS 7和apache的win2003服务器(使用wamp server 2.2)。
我们在服务器上放了一个名为test.html的页面,它向我们显示一条消息,上面写着“你在IIS页面上”和“你在WAMP页面上”,告诉我们一切是否正常工作。
两者都在本地运行真正的伟大。 IIS正在侦听端口80和端口8082上的apache。问题很快就出现了。两种服务都在运行,wamp完全在线(绿色图标+“在线”选项激活)。
在本地,在服务器上,执行http://localhost/test.html
和http://localhost:8082/test.html
会显示正确的页面。如果我们用真实IP地址替换localhost(例如目的,让我们说http://10.2.5.16/test.html
和http://10.2.5.16:8082/test.html
),仍然有用。 (不是实际地址,但用于实际的地址与dns Web服务使用的相同)
远程地,从其他任何PC上做http://10.2.5.16/test.html
和http://10.2.5.16:8082/test.html
,第一个给我们正常的网站,第二个给我们一个HTTP 403 FORBIDEN(尝试使用htaccess和windows权限,仍然有403)。以同样的方式,使用http://www.ourdomain.com/test.html
和http://www.ourdomain.com:8082/test.html
给我们完全相同的结果(第一个好,第二个403)
是否可以使其正常工作?
提前致谢。
编辑:只需添加到解决方案中:
其余的,解决方案很漂亮。
再次感谢。
答案 0 :(得分:1)
您可以在本地访问这些网站的事实告诉我两个服务器都已正确设置并在各自的端口上进行侦听。
在进一步提问时,OP表示Servername指令指向localhost并且应该更改为。
ServerName localhost:8082
要
ServerName example.com:8082 # or add "ServerAlias example.com:8082" to your existing.
example.com是您的站点DNS。然后在[System32 \ drivers \ etc \ hosts]中将DNS指向远程主机的IP。
403正在发生,因为来自远程的请求未与任何Servername或ServerAlias匹配,并且它落入通常具有stricket权限的默认处理程序。如果仔细查看日志(/logs/apache/access.log),应该有一些关于“服务器配置拒绝访问/某些位置的访问权限,如默认的DocRoot”
如果您请求http://example.com并且您的主机文件中有正确的IP,则可以跟踪远程主机中该请求发生的情况及其结束位置(防火墙,Apache等)。 Apache擅长日志记录,您只需要找到相关的日志条目!