最近发现
将IIS设置回port 80
,当我将http://localhost/
其插入WHS计算机时,它会显示“此网站的安全证书有问题”警告页面。如果仍然“继续”,则该URL出现https://localhost/Remote/logon?ReturnUrl=%2fremote
在Windows Home Server 2011远程Web访问中的username
和password
。现在,我不能确定记得,但我不相信最初只是http://localhost/
提出了这个问题。但是,似乎这可能会影响任何访问本地主机的尝试(无论端口如何)。
实际可能是什么主要问题
哦,网络错综复杂!让我感到困扰的一件事是,为什么其中两个站点会“部分地”出现,而其他站点却根本没有。然后,运行Firebug的NET跟踪向我揭示了我的主要问题是我的ISP充当DNS代理,当然也没有找到我的测试站点。但是,它确实找到了位于www.
(而非test.
)地址的两个站点,并且似乎在为这两个站点服务,但是图像被阻止,因为(我假设)我已经设置了访问图像文件的块(如果不是)的话www.
。特定网站。
这解释了未显示图像的奥秘(期待直接localhost:8080
呼叫)以及“部分”找到五个位置中的两个特定位置时的奇怪行为。
现在,我需要弄清楚如何正确配置路由器或代理文件以重定向回我的WHS计算机。我正在使用Wildblue卫星互联网服务,因为我不在任何更快的服务连接范围内。他们有一个“优化程序”文件(我不知道每个人是否都可以看到它,如果不可见,则基本上与此版本相同),我可以修改并放在本地系统上以实现我需要什么,但是我不确定我可能需要在那里做些什么。
如果有人对修改该文件或如何配置我的Linksys E1200路由器有任何建议,如果它是本地站点,则避免发送到代理,那么这可能是解决我的问题的第一步(也是最后一步)。
基于harrymc的建议的代表性代码...仍然不起作用
IIS端口设置为:90
。
httdp
文件:
Listen *:80
ServerName localhost:80
vhosts
文件:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName localhost
ProxyRequests off
ProxyPass / http://127.0.0.1:90/
ProxyPassReverse / http://127.0.0.1:90/
</virtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site1.net/httpdocs"
ServerName test.site1.net
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site2.net/httpdocs"
ServerName test.site2.net
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site3.com/httpdocs"
ServerName test.site3.com
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site4.com/httpdocs"
ServerName test.site4.com
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site5.com/httpdocs"
ServerName test.site5.com
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
以前的更新:我认为是主要问题(可能是次要问题)
如何使Windows Home Server(运行IIS)将特定的本地主机URL转发到端口,8080
以便在同一台计算机上运行的Apache(而非IIS)将请求提取到页面中?
该c:\Windows\System32\drivers\etc\hosts
文件已更改(请参阅下文),但我认为这与重新路由到新端口无关。我还假设IIS test.whatever
在端口上接收特定的url请求,80
并路由到同一端口上自己的本地主机。
我从研究发现的站点上的技巧下载了“ 应用程序请求路由”,但是在查看过程中,我不确定它是否会有所帮助(我希望通过它建立一些基于url的转发到端口)。我是网页设计师,而不是网络向导。因此,所有这些工作方式对我来说还是遥不可及。8080
可能的发展方向
基于此链接(在下面基于erikxiv的第一条评论搜索了更多内容之后找到),我尝试在IIS中尝试以下操作作为URL重写:
出站规则:
匹配:(.*
似乎可以测试)
条件:
匹配任何...(这些似乎测试模式匹配还可以)
{HTTP_HOST} Matches the Pattern test\.site1\.net
{HTTP_HOST} Matches the Pattern test\.site2\.net
{HTTP_HOST} Matches the Pattern test\.site3\.com
重写动作:
http://localhost:8080/{R:0} (it would not let me put R:1 like the example)
但是似乎仍然没有转发!
现在,下面的信息是以上新请求的全部背景。
背景资料
我最近将运行Windows XP的旧台式机更改为Windows Home Server(2011年)。旧计算机还是Apache安装上运行的本地测试站点的主机。做过一些研究后发现,在WHS机器上运行Apache并不像我最初想象的那么困难(许多站点都说WHS和Apache的IIS会引起问题,但是我发现有几个提到如果设置正确,根本没有问题, -基本上,请确保没有端口冲突)。
因此,我在WHS计算机上安装了WAMP(64位版本),并更改了Apache httpd
配置文件中的设置以侦听端口,8080
因此不会与IIS发生冲突。我将虚拟主机文件设置为与XP计算机上一样,并且端口也进行了更改。
基本上,除了 ... 以外,其他一切似乎都运行良好(但是,请参阅更新)。
(原始)问题
虽然访问本地站点的页面正常运行,并且所有css和javascript均正常运行,但每个图像文件均未显示。右键单击并选择即可确认路径信息是正确的View Image Info
(顺便说一下,在Firefox中,图像不会显示在任何浏览器中,因此它不是浏览器错误)。
但是,我注意到的是,Type
图像信息框中的显示为text/html
,而不是PNG Image
or JPEG Image
。这是在下面的信息中,其中显示了路径(地址)信息-在该部分中,它识别出文件本身是Type
任一Image
或Background
。
但是,尽管事实如此,但看起来与其识别html(实际上是php生成的html)中图像的正确mime类型(我认为),不如尝试将图像(img
元素或css background-image
)处理为文字,因此什么也没给我!但我不知道为什么。mime
控制Apache MIME类型的文件是正确的。这些页面具有以下标题...
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
...但是这些都不应该引起问题(在XP上运行时没有,在实际站点上也没有)。
因此,我正在寻求有关以下方面的想法:
- 我对mime类型的分析是否正确(基于更新,可能不正确)?
- 我还能在哪里寻找可能导致此问题的原因,以及如何解决该问题?仍然可能与WHS上的IIS发生冲突,如果是的话,那又是什么?可能是php中的任何内容(这似乎不太可能),如果是的话,那又是什么?我还能在Apache中检查什么?
更新的信息(还有更多[相关?]问题)
再做些混乱,我得出的结论是,至少部分问题似乎是对port的更改:8080
。首先,我发现并不是所有的网站都像我想象的那样好。我的c:\Windows\System32\drivers\etc\hosts
文件中有以下表示形式:
127.0.0.1 localhost
127.0.0.1 test.site1.net
127.0.0.1 test.site2.net
127.0.0.1 test.site3.com
127.0.0.1 test.site4.com
127.0.0.1 test.site5.com
我的Apache vhosts
文件中的这种表示形式:
NameVirtualHost *:8080
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site1.net/httpdocs"
ServerName test.site1.net
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site2.net/httpdocs"
ServerName test.site2.net
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site3.com/httpdocs"
ServerName test.site3.com
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site4.com/httpdocs"
ServerName test.site4.com
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site5.com/httpdocs"
ServerName test.site5.com
</VirtualHost>
这是行为:site1
和site4
正在显示,但没有图像。其他三个根本不显示,而是给出Network Error (dns_unresolved_hostname)
。
不过,如果我通过访问在WHS机器上的虚拟主机第一个站点localhost:8080
的URL,然后将图像就显示出来,并取其网站是第一次在我的虚拟主机文件也显示出来(预期); 但是,即使以前没有site2
,它也会这样做(因此,如果我移到第一个位置,它将通过localhost:8080
调用开始“工作” )。
我知道通过url中的语法访问时,我的图像文件正在返回403
(已纠正,最初我说是404)错误test.site4.com
,并且我怀疑我的图像正在显示,text/html
因为文件正在返回该错误(所以我不认为这是错误的现在是mime类型的问题,同样是找不到图片)。但奇怪的是,路径正确,并且非图像文件(javascript和css)正常运行。
所以在我看来,端口切换到似乎有些问题8080
。我现在的问题是:
- 为什么我的主机和虚拟主机文件无法正确找到所有站点(在Windows Home Server上是否需要修改其他文件)?
- 在确实起作用的那些网站上,为什么为什么找不到专门的图像(我相信是403错误,即“禁止”,如果不允许访问网站文件夹中的其他文件,这是没有意义的)?
- 为什么
localhost:8080
与前两个问题无关,访问仍然有效?
一些进一步的信息
已要求我发布日志文件。但是,我发现在那些通过直接localhost:8080
调用“默认”站点进行访问的实例中,除了(出现)之外没有任何日志发生。
因此,我关闭了WAMP服务,转至url并发现了与WAMP运行时相同的行为。这似乎表明IIS仍在控制域名,而不是由Apache接管域名(有人可以在那确认我的假设吗?),因此问题可能仍然在于将控制权移交给WAMP服务器。