網頁

2018年11月16日 星期五

OpenJDK 相關資料

Orcale 對於 JAVA/JRE 的支援,做了些變動。 針對個人用途的 Oracle Java SE 8 公開更新至少會一直提供到 2020 年底為止。業務、商業或生產用途的 Oracle Java SE 8 若未取得商業授權,將會無法使用 2019 年 1 月之後發行的公開更新。

於 2018.11要釋出的 JAVA11 (LTS)版本,它的免費支援也僅提供六個用。取得商業支援的話,不管是採用 JAVA8/JRE8 或 JAVA11/JRE11皆可支援到 2025年。

AWS釋出免費OpenJDK Amazon Corretto,免費安全更新至2023年。

這試著重新部署主機上原有的服務,將 Orcale JRE 試著改變成 OpenJDK Amazon Corretto,但會出現以下狀況,原已佈署到服務內的 Tomcat 服務,主機重新啟動是無法自動執行 Tomcat,但透過 /tomcat/bin/startup.bat 可以正常執行。後來查一下,看來應是 Tomcat 與 JRE 所選用的位元版本不一致所導致的,細節可操考這頁的說明

目前 Amazon Corretto 僅提供 64bit 版本。後來直接重新下載 tomcat 64bit 版本,直接將 64bit 版本內的 /bin/* 直接覆蓋到 32bit 版本內 (保留 catalina.bat, setclasspath.bat, catalina.bat ) 後就可以正常運作了。

相關資料:

2018年10月2日 星期二

pdf.js 最簡易的應用方式

使用方式:
下載 pre-built 版本,將下載的 zip 檔解壓縮放到特定目錄,例如放到 Scripts/pdj.js/* 的位址。
應用方式 :
HTML頁面加入以下腳本即可

<a href="Scripts/pdf.js/web/viewer.html?file=1.pdf">Open yourpdf.pdf with PDF.js</a>
這樣的寫法,pdf 的檔案,要放到 Scripts/pdf.js/web/ 目錄內
<a href="Scripts/pdf.js/web/viewer.html?file=/pdf/1.pdf">Open yourpdf.pdf with PDF.js</a>
這樣的寫法,表示 pdf 檔案放在網站根目錄下的 pdf 資料夾,這樣子就可以將 pdf集中到指定的目錄內
相關資料:

2018年9月21日 星期五

代理伺服器後的 Web Server 要取得 Client IP 的作法

這有一台主機是前端是透過 reverse proxy (squid) 代理,而這樣的方式若 Web Server 不做額外的調整時,所看到的連線記錄都會是 Proxy Server IP。如果要取得 Client IP 時,Apache就要做以下調整。

這是以 Apache2.4 windows server 為範例:

編輯 Conf/httpd.conf 檔案,內容如下:

啟用 LoadModule remoteip_module modules/mod_remoteip.so

將 LogFormat 所有出現 %h 改成 %a
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio

改成 
LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%a %l %u %t \"%r\" %>s %b" common
LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
(如果是直接在 $h 後加入 $a 那就會同時記錄proxy IP 與 client IP)
加入 
#To get Cient IP behide the Proxy
<IfModule mod_remoteip.c>
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy Your Proxy IP
</IfModule>

因為主機的使用量還蠻大的,所以主機有額外採用 rotatelogs 的機制,但很奇怪的是採用 TransferLog 的方式就不能記錄到 Client IP,記錄的 IP 還是 Proxy IP,但在 error.log 就有記錄到連線的 Client IP。後來將 TransferLog 改採 CustomLog 的方式後就可以正確的記錄 Client IP。

我在這卡了很久,一直不明白為什麼沒有記錄到 Client IP ,在後來才發現這個現象,只要將 TransferLog 的機制改成 CustomLog 後就可以解決這個問題。

修改方式如下:
TransferLog "|X:/Apache2/bin/rotatelogs.exe X:/Apache2/logs/access_%Y%m%d.log 2592000 common"
改成 
CustomLog "|X:/Apache2/bin/rotatelogs.exe X:/Apache2/logs/access_%Y%m%d.log 2592000" common

相關資料:

2018年8月21日 星期二

Freemind 小技巧


 一直習慣使用 freemind 劃出每一台服務主機內的服務架構與清單而每次需要在 word 重新彙整這些服清單資料時都是採用小畫家直接將每個節點直接複製一張圖的方式提供資料

但後來發現有更好的方式,在想要彙整資料的那個節點內直接按下鍵盤 Ctrl+C 在直接在 Word 內按 Ctrl+V 就可以將那個節點內的資料彙整出來。

2018年7月18日 星期三

Apache 2.4 - 無法停止服務

最近有幾台採用 Server 2008 R2 64bit 的設備,Apache 2.4 出現無法停止服務的狀況。但將主機重新開機後,不管是使用服務或指令停止服務就可以很正常的停止與啟動,但使用一段時間後(也許 1-2 小時後),有時它就會出現無法停止的現象。但神奇的是,又不是每一台都會有這樣的狀況。

因為機器上的版本剛升級 Apache 2.4.34 V15的版本,想說與升級至 V15 版本有關係,但查了一下資料,看起來好像與微軟的更新有關。 因為這篇的敘述與我的主機的狀況很像,我的主機也是運作了至少 4 or 5年以上,也是最近才出現此現象。剛找到另一篇資料,看來應是同一篇作者反應,現在回想起來,另一台Windows Server 上的 FTP Server 也有出現問題,看來與 Microsoft 的安全性更新有很大的關係。目前看來好像無解,僅能解除 KB4338818。在觀察看看吧!!

107.07.19
今天看到的,似乎已針對 Server 2008 R2 版本釋出修正(KB4345459),但需手動更新。由資料看來,若不急著測試。應該會在下個月(8/14)的更新包含此修正檔。

107.07.20
忍不住試著安裝 KB4345459 。目前的測試結果看來是已解決無法停止 Apache 服務的問題;
這有觀察到另一台 Server 2016 的主機,看到 Windows Update 將 KB4345418  修正檔自動部署更新。

107.07.25
Microsoft 將 KB4338821 納入到重要更新內,透過 Windows Update 就可以直接安裝修正。此更新已包含此問題的修正(Addresses an issue that occurs when an administrator tries to stop the World Wide Web Publishing Service (W3SVC). The W3SVC remains in a "stopping" state, but cannot fully stop or it cannot be restarted.)。

先前已安裝  KB4345459 的主機同時安裝 KB4338821 看來是沒有問題的。


相關資料:


2018年6月29日 星期五

JAVA8 支援更新問題

館內購買的資料庫,有些系統所採用的架構是 Tomcat、JAVA8。

Orcale 對於 JAVA/JRE 的支援,做了些變動。 針對個人用途的 Oracle Java SE 8 公開更新至少會一直提供到 2020 年底為止。業務、商業或生產用途的 Oracle Java SE 8 若未取得商業授權,將會無法使用 2019 年 1 月之後發行的公開更新。

於 2018.11要釋出的 JAVA11 (LTS)版本,它的免費支援也僅提供六個用。取得商業支援的話,不管是採用 JAVA8/JRE8 或 JAVA11/JRE11皆可支援到 2025年。

未來系統可以朝向以下方向調整:
  1. 系統改採 OpenJDK 架構
  2. 系統直接改採廠商所提供的主機使用
  3. 取得 Oracle 商業授權
後續進展 107.11.16
  1. AWS釋出免費OpenJDK Amazon Corretto,免費安全更新至2023年 
  2. Amazon Corretto

相關連結:

2018年6月14日 星期四

Server 2008 R2 64bit 磁碟清理工具

有一台主機的 C:/ 容量不足,才發現原來 Server 2008 R2 64bit 預設是沒有磁碟清理工具。若要使用需做以下處理。
  • 第一種方式:
將以下檔案,複製一份到指定的位址內。

C:\Windows\winsxs\amd64_microsoft-windows-cleanmgr_31bf3856ad364e35_6.1.7600.16385_none_c9392808773cd7da\cleanmgr.exe

C:\Windows\winsxs\amd64_microsoft-windows-cleanmgr.resources_31bf3856ad364e35_6.1.7600.16385_zh-tw_1d4e095896ea82e5\cleanmgr.exe.mui

Cleanmgr.exe 複製到 %systemroot%\System32中。
Cleanmgr.exe.mui 複製到 %systemroot%\System32\zh-TW中。
  • 第二種方式:
採用安裝"桌面體驗" 的方式進行安裝也是可以的。

相關資料 
  1. 如何在Windows Server 2008 R2沒有磁碟清理工具的情況下使用系統提供的磁碟清理工具
  2. windows 2008 r2新增 磁碟清理功能
  3. C槽滿了,磁碟清理術 ( c:\windows\logs\CBS\ 、 \SoftwareDistribution\Download 、\TEMP )