前面 Solr 教學 (1) – 安裝篇Solr 教學 (2) – tomcat 7 以帳號密碼限制存取頁面 講解了 Solr 安裝方式以及頁面安全性設定,這篇文章要記錄透過 tomcat 7 內建的 Remote Address Filter 來設定允許連線 IP 的白名單。

這個方法非常簡單,不過要注意的是 tomcat 版本不同會有不同的設定方法,這邊小蛙的環境是 Ubuntu 13.04 64bit + Solr 4.5.0 + tomcat 7,以下的方法僅適用於 tomcat 7 這個版本!

在測試這個功能的時候發生一個小插曲,以往設定完馬上就可以用了,這次測試時不管怎麼做都會出現 403 Forbidden 的錯誤,簡直是晴天霹靂,完全摸不著頭緒,已經設定好小蛙自己使用的 IP,還是一樣 403,最扯的是 127.0.0.1 本機測試也還是一樣的情況,在資訊這行經常會遇到靈異現象,可能要買一包綠色乖乖才可以,不過 VPS 主機在美國要怎麼辦呢 …

後來 … 突然想到一件事情,小蛙的網站有使用 CloudFlare 這個服務來加快網頁速度,CloudFlare 會根據使用者的設定,比如原本的 http://wazai.net/ 假設連結到小蛙的 IP (1.2.3.4),這個 1.2.3.4 的 IP 是在美國紐約,現在有一個日本來的使用者連結了 http://wazai.net,此刻 CloudFlare 發現日本這邊也有一個 CloudFlare 伺服器,就會將日本的使用者連結到日本的 CloudFlare 伺服器以加快網站速度。

就在這個 moment,真正連到小蛙伺服器的 IP 就變成 CloudFlare 日本伺服器的 IP,而不是真正日本使用者的 IP,當然這邊 CloudFlare 也有提供自訂的 Header 可以取得原始日本使用者的 IP。

到這邊大概懂了 … 竟然被那麼奇怪的問題卡了那麼久 … 就是小蛙在測試的時候,也是連結 http://domain:8080/solr ,但真正收到的 IP 卻不是小蛙自己本身的 IP,而是接近小蛙位置的 CloudFlare Server IP,就連在本機 127.0.0.1 的時候也是一樣的狀況 … CloudFlare 為了避免這個問題,可以在網站上設定可以直接連接的 Domain,例如:domain 透過 CloudFlare,額外新增設定 nocf.domain 來避免使用 CloudFlare。

上教學!有兩種設定方式,一種是 Apache Tomcat 官網範例 提到的透過 web.xml 設定 <filter>,第二種是直接在 <Host> <Context> 等 Catalina Container 中設定。

透過 <filter>

  1. <filter> 過濾器在每個專案下的 web.xml 中設定,在 <web-app> </web-app> 之間加入 <filter> 設定,IP 的部分設定為 1.2.3.4 改寫成 1\.2\.3\.4,IP 與 IP 之間以「|」分隔。
    # vim /var/lib/tomcat7/webapps/solr/WEB-INF/web.xml
    <filter>
      <filter-name>Remote Address Filter</filter-name>
      <filter-class>org.apache.catalina.filters.RemoteAddrFilter</filter-class>
      <init-param>
        <param-name>allow</param-name>
        <param-value>127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1</param-value>
      </init-param>
    </filter>
    <filter-mapping>
      <filter-name>Remote Address Filter</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>
  2. 設定完成!重新啟動 tomcat。

透過 <Context>

  1. 進入到 solr 個別設定檔,在 <Context> </Context> 之間加入 <Value />
    # vim /var/lib/tomcat7/conf/Catalina/localhost/solr.xml
    <Valve className="org.apache.catalina.valves.RemoteAddrValve"
            allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1"/>
  2. IP 設定規則同 <filter> 第一點。
  3. 設定完成!重新啟動 tomcat。

相關文章

Solr 教學 (2) – tomcat 7 以帳號密碼限制存取頁面

接續 Solr 教學 (1) – 安
2013-10-14 22:34:34
hans

18

SSL For Free – 免費又有綠色鎖頭的 SSL Certificates

之前聽說 Google 會優先搜尋有 https 的網頁 (參考:
2016-07-07 23:00:54
hans

8

Android Vuforia with jPCT-AE (5) – 多重模型載入,以 obj 為例

要進到這系列最後一篇文章了,這篇文章拖了很久,一直沒有時間整理,結果到最後 ... 程式碼留下來了,記憶卻有些模糊了,這邊小蛙配著程式碼盡可能的把還記得的東西寫下來。
2016-07-06 11:24:19
hans

8

ClickForce (MobiForce) 當機問題

這真是個浪費時間又漫長的過程,CF 推出新版後台以及新版 SDK 的時候,小蛙就下載來測試,一開始小蛙直接套在「我的股票精算師」上,但只要一套上去就當機 ...
2015-09-02 10:32:51
hans

8

我的股票精算師備份功能

常遇到使用者詢問「我的股票精算師」要怎麼備份,這篇記錄一下,需要寫怎麼備份表示軟體設計上有很大的問題,造成使用者使用上的困難,但小蛙最近沒有時間去做修改 ... 只好委屈精算師的使用者了 ><
2015-02-06 18:32:07
hans

8

第一次從淘寶買小米盒子3

最近阿咕有在大螢幕上看韓劇的需求,剛好搭上 Chromecast 的上市,survey 了一些 Android 電視棒。這篇記錄這幾天的經過。

2015-01-04 23:36:33
hans

8

Qualcomm Vuforia 教學 (6) – 3D model -> .obj -> .h

終於來到 Vuforia 記錄的最後一篇了,這篇參考到網路上神人的做法,怎麼把一個 3D model 轉換成 Vuforia 可以使用的 .h 檔,這邊之後都直接使用 An
2014-12-10 11:25:50
hans

8

Qualcomm Vuforia 教學 (4) – 使用 Android NDK 版本並開啟多重偵測

接續前幾篇教學,我們已經建置好 Vuforia 開發及執行環境
2014-12-09 17:10:57
hans

8

Qualcomm Vuforia 教學 (2) – Create Image Target

接續上篇 
2014-12-09 12:17:40
hans

8




 回覆

你可以使用以下語法 HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="">

(required)

(required)

   
© 2012 蛙齋 Suffusion theme by Sayontan Sinha