2016-12-20 238 views
1

運行Apache 2.4.6的CentOS 7充當面向Internet的中央前端Web服務器。因此它有一些反向代理連接設置。他們都指向其他LAMP並且工作得很好。但是,我有一個IIS服務器運行其中一個.Net/ASP網站,只是不想正確加載。在Apache上使用下面的配置,IIS網站加載所有的HTML & css的東西。向IIS反向代理Apache

<VirtualHost *:80> 
    SeverName example.com 
    ProxyRequests Off 
    ProxyPreserveHost On 
    ProxyPass /extDirectory/ http://internalserver/internalDirectory/ 

    <Location /extDirectory/ > 
     ProxyPassReverse http://internalserver/internalDirectory/ 
     Order allow,deny 
     Allow from all 
    </Location> 

</VirtualHost> 

但是它看起來像有每這張截圖一個會話ID事故而訪問網站的外部: External-gets-error

相比於內部的訪問相同的網站: internal-is-OK

Apache日誌和我所能從IIS的日誌收集不會顯示任何錯誤。我得到的唯一錯誤是使用IE的buil;在開發人員工具中,並且看到「未找到200授權」,即使我已成功登錄。

回答

1

我無法解決這個問題,因爲ASP.Net開發人員通過修復軟件來解決這個問題。這是他們的回覆和解決方案:

企業創建授權令牌,用於驗證來到服務器的每個請求。每個AJAX請求都必須有一個有效的身份驗證令牌,否則它將被拒絕。部分令牌是最終用戶的IP地址。如果AJAX請求中的IP地址與原始登錄請求不同,則令牌驗證將失敗,並且AJAX請求將被拒絕。 Enterprise v6.5.2通過按以下順序查找三個特定的HTTP標頭來確定最終用戶的IP地址:HTTP_X_CLUSTER_CLIENT_IP,HTTP_X_FORWARDED_FOR,REMOTE_ADDR。我們認爲代理服務器可能會爲AJAX請求發送一個不同的IP地址,這會導致令牌驗證失敗,並且AJAX請求被拒絕。

打開企業的web.config和靠近頂部加入這一行的元素正下方:

<add key="USER_HOST_ADDRESS" value="127.0.0.1" /> 

保存並關閉web.config文件,然後重新啓動IIS。

這就是它。原來是一個ASP.NET問題,而不是Apache。