如何強制 IP 地址和主機名在 Tomcat 伺服器上僅作為 example.com 公開?
我有一個在 Tomcat7 之上的 CentOS 6 上執行的 Web 伺服器。一切正常,但是,使用者可以通過多種方式訪問伺服器。
例如:
- IP地址
example.com
www.example.com
這些地址都可以通過瀏覽器訪問。但是我想配置伺服器,以便當 IP 地址或被
www.example.com
訪問時,它會指向 `example.com。範例
IP 地址,xxx.xx.xx.xx ► example.com
www.example.com ► example.com實現這一目標的最簡單方法是什麼?是否需要 DNS 在伺服器上進行配置?
要阻止這種情況,您幾乎無能為力。您最好的選擇是在 Tomcat 中設置一組重寫規則,以便在訪問各種 URL 或 IP 地址時,它們相應地重定向或重寫訪問 URL,使其成為 domain.com。
前端網路伺服器
很多時候,人們會部署一個 Tomcat 或 Jetty 伺服器,並在前面放置一個 Web 伺服器來幫助實現這一點。在我工作的地方,我們使用 Nginx 來做到這一點。您實際上是在將 Tomcat 伺服器代理為它背後的從屬伺服器。以這種方式部署它可以讓 Tomcat 伺服器受到“保護”,因此只能以您想要的方式訪問它,因為最終使用者只能訪問它前面的 Web 伺服器上公開的 URL。
您可以在此處閱讀有關此部署模型的更多資訊:
Nginx 只是一種網路瀏覽器,你可以很容易地使用 Apache 或其他東西來提供前端層。
只用 Tomcat 重寫
另一種方法是使用這樣的模組UrlRewriteFilter,它可以在 Tomcat 本身內執行 URL 重寫。這種方法類似於使用Apache 的 mod_rewrite模組來清理和重定向傳入的 URL。
有一個關於如何為 UrlRewriteFilter 創建規則的不錯的教程,標題為:Tuckey URLRewrite How-To。