http://example.com
我有一個前面有一個負載平衡器的伺服器,名為https://example.net
執行 SSL 卸載並將流量重定向到其上的連接埠 443 到http://example.com
.
伺服器example.com
被隔離在虛擬網路中,無法透過 Internet 存取。負載平衡器example.net
可以到達example.com
並公開暴露於互聯網。
如何將 Apache Tomcat 8 管理器 Web 介面設定為只能從 存取http://example.com/manager
但不能從 存取https://example.net/manager
?
答案1
我不知道你正在使用什麼負載平衡器,所以無法給出具體的配置,我自己有一個透過 Nginx 作為代理的公共可存取 tomcat 伺服器。
nginx
upstream websites {
server 192.168.x.x:8080 fail_timeout=0;
}
server {
listen 80;
listen 443 ssl;
server_name www.example.com example.com;
location / {
proxy_pass http://websites/;
include proxy_params;
}
#SSL configuration here
}
我還讓 Nginx 執行 SSL 終止和壓縮,因為它更容易管理和設置,如果我想稍後創建負載平衡,我也可以使用 Nginx 執行此操作,因此沒有理由在 Tomcat 中執行此操作。 https://www.digitalocean.com/community/tutorials/how-to-add-the-gzip-module-to-nginx-on-ubuntu-14-04
如果尚未存在,則在 Tomcat server.xml 上為您的網站新增一個新的虛擬主機。
<Host name="www.example.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Alias>example.com</Alias>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="test_example_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
比在管理器專案的manager.xml 檔案中,您可以設定誰可以存取管理器HTML 頁面,將其設定為您的公共IP 位址或跳轉主機,因為我記得標準只有localhost 可以連接到HTML管理器。
就我個人而言,我已從自己的安裝中刪除了管理器項目,以避免在管理不正確且我不需要它的情況下與其相關的安全問題。
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="192.168.1.*" />
在 tomcat-users.xml 中設定管理員的使用者和密碼,然後就可以開始了。
答案2
在 Web 伺服器中設定 Proxpass/Porxyalias。為此,您應該在 HTTP(80) 中進行配置,但最佳實踐是您可以在限制存取的情況下載入 https