我有一个Web服务器从本地IP地址提供页面。
它在NAT后面正确设置端口转发为80和443(通过指向另一本地Web服务器testing)。
当试图从公共地址访问时,我得到403,同时从本地networking可以到达任何东西。
Web服务器是Apache。
什么东西要检查的顺序?
编辑 :谢谢大家的答案。 问题解决了。
我检查了Apache访问日志(403得到提及那里),但是那不给我真正的线索。 在那一刻,我基本上想知道是Apache还是Web应用程序(Drupal)是这样的回应。 在三重检查apacheconfiguration之后,我也更彻底地检查了webapp,发现非本地IP被禁止。
编辑2:如果有人提供了一个很好的答案(或扩大现有的)什么将是一个正确的方式来确定,如果是Apache或Web应用程序,我会接受它作为答案。
你在你的apacheconfiguration中使用基于名字的虚拟主机吗? 你如何从局域网和通过NAT路由器连接? 如果您有基于名称的虚拟主机,则HTTP请求中的主机头将定义哪个虚拟主机提供请求。 所以例如,如果我有一个像这样的东西:
<VirtualHost *:80> ServerName my.internal.hostname ..... </VirtualHost> <VirtualHost *:80> ServerName some.other.hostname ... </VirtualHost>
而且我使用http://my.nat.router/在外部路由器上连接,我可能会在我指定的最后一个虚拟主机名上结束。 如果这个设置在没有权限的DocumentRoot上,我得到一个403。
另一种可能是你有一个指定的DocumentRoot,后来在Directory指令中没有“全部允许”,但只有“allow from 192.168.0.0/24”。
apache错误日志说什么? 这应该给你一个线索。
最好的猜测 – 仔细检查你的networking服务器configuration – 你允许从“任何”访问? 那里只有允许本地子网的规则。
403是禁止访问的。 你允许匿名访问Apache?