差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

下次修改
前次修改
java:supportipv6:java_service_wrapper_cant_start [2020/01/24 11:56]
tony 建立
java:supportipv6:java_service_wrapper_cant_start [2023/06/25 09:48] (目前版本)
行 1: 行 1:
 +{{tag>​java ipv6 Java_Service_Wrapper}}
 ====== Java Service Wrapper service can't start of pure IPv6 env ====== ====== Java Service Wrapper service can't start of pure IPv6 env ======
 ===== Problem ===== ===== Problem =====
行 6: 行 7:
 本篇文章主要分享我們的解決方式。 本篇文章主要分享我們的解決方式。
 ===== How to resolve? ===== ===== How to resolve? =====
 +首先可以在正常使用的情況下,執行netstat確認port的綁定狀況:​
 +<code bash>
 +root@tony:/​opt#​ netstat -na | grep 32000
 +tcp        0      0 127.0.0.1:​32000 ​        ​0.0.0.0:​* ​              ​LISTEN
 +</​code>​
 +從以上結果可以得知,JWS預設是綁定IPv4的127.0.0.1。於是我開始找尋JWS是否有方法可以設定這些東西,有兩個方法提供給大家。
 +===== 設定Socket Type =====
 +第一個方法是明確設定要使用IPv6還是IPv4的socket type,然後再給予對應的連線位置:​
 +<code bash>
 +# For IPv6
 +wrapper.port.address=[::​1]
 +wrapper.backend.type=SOCKET_IPv6
 +# For IPv4
 +wrapper.port.address=127.0.0.1
 +wrapper.backend.type=SOCKET_IPv4
 +</​code>​
 +我有嘗試過AUTO,但無法解決問題。如果有使用安裝程式的人,這個設定可能會轉嫁在安裝程式上。
 +===== 使用PIPE =====
 +因為前一個方法必須要去偵測並設定,因此我們使用了PIPE的做法,目前看起來也可以解決問題:​
 +<code bash>
 +wrapper.backend.type=PIPE
 +</​code>​
 +至於這個做法有沒有side effect,等我們發現了我會再特別記錄。另外需要注意的是,這方法至少要3.5.26以後的版本才可以使用,我覺得我們很幸運。
  
 ===== Reference ===== ===== Reference =====
 +  * [[https://​wrapper.tanukisoftware.com/​doc/​english/​prop-backend-type.html|JWS configuration - wrapper.backend.type]]
 +  * [[https://​wrapper.tanukisoftware.com/​doc/​english/​prop-port.html#​address|JWS configuration - wrapper.port.address]]
 +  * [[https://​wrapper.tanukisoftware.com/​doc/​english/​release-notes.html#​3.5.26|JWS relesae note for 3.5.26]]
  
 =====    ===== =====    =====