[英]IIS 7.5 ARR/URL ReWrite2 ReversProxy to Apache on Virtual Machine
這是場景。
服務器是Win2k8,運行IIS 7.5。 我安裝了ARR和URL Rewrite2。
我有一個運行最新版Ubuntu Server的虛擬機。 Apache,mySQL,PHP均已安裝。
我已將IIS配置為反向代理,並設置了URL ReWrite,如下所示:
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" stopProcessing="false">
<match url="(.*)" />
<action type="Rewrite" url="http://192.168.1.17/{R:1}" />
</rule>
</rules>
</rewrite>
我已驗證http://dev.o7t.in正確地路由到了VM上apache中的已配置站點,但是, http: //wp.o7t.in卻被定向到了相同的確切位置。 這是apache中兩個站點的配置:
開發人員:
# NameVirtualHost *:80
<VirtualHost *>
ServerName devo7tin
ServerAlias dev.o7t.in
ServerAdmin support@o7t.in
DocumentRoot /var/www/dev/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/dev/>
Options -Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
wp:
# NameVirtualHost *:80
<VirtualHost *>
ServerName wpo7tin
ServerAlias wp.o7t.in
ServerAdmin support@o7t.in
DocumentRoot /var/www/wordpress/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/wordpress/>
Options -Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
並且已經在ports.conf中配置了NameVirtualHost
我要注意的是主機頭,它總是恢復為虛擬機的IP地址(在這種情況下為192.168.1.17),並且完全忽略了請求的主機。
所以...。如何解決這個問題,並將正確的HTTP_HOST標頭傳遞給我的VM?
我是正確的。 IIS沒有發送HTTP_HOST標頭。 當然,為什么他們要在任何地方發布它,但是顯然ARR默認是禁用的,但是可以通過以下方式啟用它:
appcmd.exe set config -section:system.webServer/proxy /preserveHostHeader:"True" /commit:apphost
配置了它,現在可以使用了!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.