簡體   English   中英

IIS 7.5 ARR / URL ReWrite2 ReversProxy到虛擬機上的Apache

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM