如果你只是要改 JBOSS 執行的 port,那就更改它的設定檔 server.xml 找到 port 8080 的地方,改成 80,重新執行 JBOSS 就會變成 80 了。
不過你瞭解 JBOSS 為什麼要把 port 預設在不是一般的 HTTP 80與 HTTPS 443 嗎 (而且預設只允許本機連而已)?因為 JBOSS 是執行程式用的,所有連線都會交給 java 去執行。所以通常不放在第一線給 user 連線。user 連到你的網站,一般都是先秀網頁,網頁裡面有需要抓動態資料的地方,才會用到 JBOSS 執行程式。所以 HTTP 80與HTTPS 443 是給第一線的 web server 服務靜態檔案用的,例如 html、jpg、css、js 這類檔案。需要執行程式的時候,再由第一線的 web server 以反向代理的方式 (reverse proxy) 交給後面的 JBOSS 處理。這樣網站的速度才會快。
要是連 html、jpg、css、js 這類檔案也丟給 JBOSS 來處理,那網站會慢如牛步,沒必要 (這些檔案又不是程式),事實上也是錯誤的用法。
示意圖
您好,我不是很瞭解 JBOSS 為什麼要把 port 預設在不是一般的 HTTP 80與 HTTPS 443 (而且預設只允許本機連而已)。。。。
謝謝您提供的詳細資訊
我再做一下LAB試試看,另外請教您
若原始URL為
HTTPS://PPP.COM.TW:8080/a/b/
希望可以變成
HTTPS://PPP.COM.TW/
是要怎麼修改呢??
把 standalone.xml 中的
<socket-binding name="http" port="8080"/>
<socket-binding name="https" port="8443"/>
改為
<socket-binding name="http" port="80"/>
<socket-binding name="https" port="443"/>
再重跑 JBoss 即可。
可是改完後,"/a/b/"的路徑要怎麼縮到root目錄裡呢?
你的需求不是只要把 /a/b 加到 context-root 就好了嗎?
https://access.redhat.com/knowledge/docs/en-US/JBoss_Enterprise_Portal_Platform/4.3/html/Reference_Guide/configuration-contextroot.html
建議你還是好好地研究一下 JBoss 怎麼安裝比較妥當喔。
w大謝謝你們的回覆, 我再看一下是怎麼處理...有點吃力所以回應比較慢,不好意思
jboss用8080和8443的真實意義是因為80和443都是特權埠口(privileged ports), 在Linux/Unix/BSD...等系統中1024以下的都是特權埠口, 需要root權限才能bind, 因此, 用80和443都不是好的安全作為.
我用jboss, 不用特權埠口的, 只要在防火牆上做NAT就好了. 也可以用Reverse proxy來做, 例如用Nginx, Varnish, HAProxy,...等等.
但是可以改到其它非特權埠口, jboss不同版本的設定也不同. 以jboss AS 7.1.0來說, standalone.xml中, 修改需要的ports:
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}"><socket-binding name="http" port="8080"/><socket-binding name="https" port="8443"/><socket-binding name="management-native" interface="management" port="${jboss.management.native.port:9999}"/><socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/><socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9443}"/><socket-binding name="osgi-http" interface="management" port="8090"/><socket-binding name="remoting" port="4447"/><socket-binding name="txn-recovery-environment" port="4712"/><socket-binding name="txn-status-manager" port="4713"/><outbound-socket-binding name="mail-smtp"><remote-destination host="localhost" port="25"/></outbound-socket-binding></socket-binding-group>
或者修改您用來啟動的xml啟動參數檔.
對。把
<socket-binding name="http" port="8080"/>
<socket-binding name="https" port="8443"/>
改為
<socket-binding name="http" port="80"/>
<socket-binding name="https" port="443"/>
即可。
把重導到80和443的工作交給防火牆或reverse proxy(load balancing)吧.
請問改完後,"/a/b/"的路徑要怎麼縮到root目錄裡呢?
這是rewrite的工作, 請先參考:
http://docs.jboss.org/jbossweb/7.0.x/rewrite.html
b大謝謝你們的回覆, 我再看一下是怎麼處理...有點吃力所以回應比較慢,不好意思