分類
系統技術

Oracle Cloud上主機網路異常處理

今天早上監控通知在 Oracle 上的 VM主機異常, 於是檢查了一下, 發現看起來是 DNS解析失敗, 繼續做一些測試:

  1. ping 8.8.8.8 – 回覆很久才開始, 一旦有回覆後, 就還蠻正常的.
  2. ping 1.1.1.1 – 回覆很久才開始, 一旦有回覆後, 就還蠻正常的.
  3. ping www.google.com – 會出現 Temporary failure in name resolution 這個錯誤訊息.
  4. nslookup 查找 www.google.com 會 timeout
  5. route 指令列出路由資訊很慢

綜合以上問題, 看起來主機的網卡連接可能有些異常, 而且速度十分緩慢, 即使是 ping gateway 10.0.0.1 也是一樣, 於是想說將 firewalld 停掉, 但仍狀況相同, 即使從 ssh reboot 或由 OCI 上的 reboot 都無法解決.

分類
系統技術

Cloudflare提供YubiKey優惠價10元(美金)

為了將安全性提高, 降低釣魚網站風險, Cloudflare提供了 Yukikey的優惠價格10元(美金), 大家可以參考這篇來申請:

https://blog.cloudflare.com/making-phishing-defense-seamless-cloudflare-yubico/#collaborating-with-yubico

提供現有Cloudflare客戶申請, 免費方案的會員亦可, 申請後幾天會收到 Yubikey 的 Coupon代碼, 可以利用該 Coupon來購買 Yubikey 的兩款設備:

  1. Yubikey 5C NFC 原價美金55元 – https://www.yubico.com/jp/product/yubikey-5c-nfc/
  2. Yubikey 5 NFC 原價美金45元 – https://www.yubico.com/jp/product/yubikey-5-nfc/

可以用美金10元購買10支上述兩款設備, 不過由瑞典寄出, 運費為30元美金, 若只買一兩支是比較不划算.

除了 Cloudflare可以用之外, 許多的網站服務包含像是Google, Amazon, Microsoft等, 作業系統如 Windows, Mac等, 也都可以利用這個 Yubikey做二階段驗證登入, 十分方便呢.

Windows環境下安裝PHP 8.1.3與Composer

今天來介紹安裝 PHP 8.1.3 於 windows 環境下.

首先至 PHP Windows版本下載的連結:

https://windows.php.net/download

可以安裝 VS16 x64 Non Thread Safe (2022-Feb-16 08:50:36) 這個版本即可, 至於 Thread Safe 與 Non Thread Safe 有什麼不同可以參考: https://stackoverflow.com/questions/1623914/what-is-thread-safe-or-non-thread-safe-in-php, 原則上是與 Apache  Web Server 應用時會需要 Thread Safe 版本, 其他不需要.

解開後放在自己想放的資料夾中, 例如 c:\php (預設也會是這個, 若不是也沒關係), 例如 c:\tools\php813, 然後將這個路徑加入環境變數 PATH 中, 供執行時, 可以執行 php.exe 這個執行命令.

在 console 下, 可以利用以下指令:

C:\Users\tim> PATH %PATH%;C:\tools\php813

接下來的步驟很重要, 先將目錄下的 php.ini-production 或 php.ini-development 複製一份為 php.ini , 調整兩個重要的內容:

  • extension_dir = “ext”
  • extension=openssl

這兩行前面的註解 “;” (分號) 要拿掉.

以上都完成後, 你就可以在 console 下執行 php -v 來看 php 是否可執行, 與版本資訊:

C:\Users\tim>php -v
PHP 8.1.3 (cli) (built: Feb 16 2022 08:20:53) (NTS Visual C++ 2019 x64)
Copyright (c) The PHP Group
Zend Engine v4.1.3, Copyright (c) Zend Technologies
分類
系統技術

再談URL長度上限

先來看一下之前寫的:

由 browser 的上限來看是 2083, 而由 apache / iis 來看則是 8190 / 4096 兩個等級.

不過無論如何, 這個 url 上限的討論是個很熱門的問題:

https://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-in-different-browsers

除了 RFC / Browser / Web Server 外, 還多提出了 CDN (其中的 status code 414 (414 URI Too Long, https://tools.ietf.org/html/rfc7231#section-6.5.12) 就是在描述這個:

這個很重要, 因為 CDN 是轉遞內容的重要功能, 不過看起來長度也都放得很寬.

再來看個別瀏覽器利用測試的方式來查看長度:

Browser Address bar document.location or anchor tag
Chrome 32779 >64k
Android 2192 >64k
Firefox >64k >64k
Safari >64k >64k
IE11 2047 5120
Edge 16 2047 1024

也都有相當的長度.

不過由以上來看, 還是得保守地使用約在 2000 bytes 長度的 url 較為保險.

 

分類
系統技術

EC2如何擴充開機碟空間

EC2 是 AWS 上的虛擬機器, 一般來說是用來做工作負載的.

如何擴充開機磁碟, 可以利用 EBS 的空間直接線上設定即可.

但是作業系統還不會擴充, 需要下一些指令來進行.

先參考這裡:
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recognize-expanded-volume-linux.html

我的流程如下:

[ec2-user ~]$ sudo file -s /dev/xvd*

/dev/xvda: DOS/MBR boot sector ..
/dev/xvda1: Linux rev 1.0 ext4 filesystem data …
/dev/xvdf: SGI XFS filesystem data …

[ec2-user ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 16G 0 disk
└─xvda1 202:1 0 8G 0 part /

[ec2-user ~]$ sudo growpart /dev/xvda 1

[ec2-user ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 16G 0 disk
└─xvda1 202:1 0 16G 0 part /

[ec2-user ~]$ sudo xfs_growfs /dev/xvda1

[ec2-user ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 16G 1.9G 14G 12% /

很容易地在線上完成擴充, 不過在 EBS 設定擴大空間時, 會影響 EC2 效能, 但不致於不能工作. 記得最好先做備份或快照, 避免不必要的資料異常或損失.

繼續閱讀:
https://hackernoon.com/tutorial-how-to-extend-aws-ebs-volumes-with-no-downtime-ec7d9e82426e

分類
系統技術

Vultr High Frequency Compute機種每月6元

Vultr High Frequency Compute機種每月6元

昨天在做 lab 時, 使用了 Vultr 主機, 有出 High Frequency Compute機種, 使用了 NVMe 這種存放體, 實測了一下效能高不少, 而且低規的機種, 每個月是 6美元, 十分適合做 lab 使用.

官方網站比較如下:

原 SSD (High Performance Compute)機種:

新 NVMe (High Frequency Compute)機種:


效能多了 50%, 每月才多1美元, 十分划算, 快利用推薦碼申請還有 USD 100元可用:

https://www.vultr.com/?ref=8432242-6G

來試看看吧.

繼續閱讀:

https://diary.tw/archives/33

分類
FreeBSD/Linux

Apache使用.htaccess重導新網域

有時因為網域修改, 需要做網域級的重導, 建議使用 301 配合 .htaccess 的設定來進行, 可以使用以下語法:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^olddomain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.olddomain.com$
RewriteRule (.*)$ http://www.newdomain.com/$1 [R=301,L]

其中的 R=301 是使用了 301重導, 而新舊域名可以參考上面語法, 並且使用了 RewriteRule 將任意內容重導至新網域時, 維持相同的網址.

參考資料: https://wpscholar.com/blog/redirect-old-domain-to-new-domain-via-htaccess/

分類
FreeBSD/Linux

於linux command line下進行主機網路測速

在有 GUI 的環境下, 可以使用 browser 訪問 https://www.speedtest.net/ 進行測速, 若在 linux 下沒有 GUI 與 browser 的狀況下, 進行測速, 一樣使用 speedtest 的服務來測試, 需要這個 speedtest-cli 工具.

這裡將介紹的工具是需要 python runtime 的, speedtest-cli 工具, github 連結:

https://github.com/sivel/speedtest-cli

操作方式有許多種, 最簡便的就是下載執行 (需注意執行安全性, 此列執行無須 root):

curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -

結果就是在主機下執行對應網路速度的速度, 範例結果如下:

很容易理解目前主機的網路速度概況.

其他參數, 例如列出所有測速主機, 使用 –list 如下:

curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python - --list

就會列出許多對應測速主機, 還列出了距離(由近至遠).

Retrieving speedtest.net configuration…
17383) Windstream (Ashburn, VA, United States) [0.98 km]
5132) Shentel Service Company (Ashburn, VA, United States) [0.98 km]
3810) BroadAspect (Ashburn, VA, United States) [0.98 km]
….
9662) Foxtel Broadband (Perth, Australia) [18575.84 km]
2171) Internode (Perth, Australia) [18575.84 km]
3414) Optus (Perth, Australia) [18575.84 km]
17109) Pentanet (Perth, AU) [18575.84 km]
3254) Vodafone Hutchison Australia (PH) (Perth, Australia) [18575.84 km]
22904) Superloop (Perth, Australia) [18575.84 km]
1931) IX Australia (Perth, Australia) [18575.84 km]
10613) Optus (Rockingham, Australia) [18607.31 km]

十分有趣呢.

繼續閱讀:
https://blog.gtwang.org/linux/speedtest-cli-linux-command/
https://askubuntu.com/questions/104755/how-to-check-internet-speed-via-terminal

分類
系統技術

使用datauri建立.ics(iCal)行事曆下載

使用 .ics (iCal) 行事曆檔案供使用者下載後, 加入行事曆(如 outlook, google calendar)可以方便提醒使用者, 一般可以先利用 .ics 產生器如:

http://www.icalmaker.com/

進行檔案建立後, 再提供使用者對應的 .ics 檔案下載即可, 但若想使用 datauri 的方式呢?

可以先將檔案內容編成 base64 編碼後, 使用:

<a download="reminder.ics" href="data:text/calendar;base64,QkVHSU46...>reminder.ics</a>

語法來進行, 可以參考 demo:

https://codepen.io/timhuang/pen/ErpYWM

Datauri 可以參考之前圖片用法的介紹:

https://diary.tw/archives/1040

參考資料:

https://stackoverflow.com/questions/3916191/download-data-url-file

分類
FreeBSD/Linux

[nginx]Reverse Proxy with Cache SSL fails

一般我們在實作 Nginx 的 Reverse Proxy with Cache 時, 可以參考這篇:

https://www.nginx.com/resources/wiki/start/topics/examples/reverseproxycachingexample/

不過若是 proxy_pass 的 upstream 是 https://example.com/ 時, 會發生以下錯誤:

SSL_do_handshake() failed (SSL: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure) while SSL handshaking to upstream

從 log 來看, 其實原因很單純, 因為預設往 upstream 的 web request 會使用 ip 的方式連接, 而導致錯誤 (前端收到為 502 bad gateway), 解決方式只需要新增一個值:

proxy_ssl_server_name on;

如此即可, 請參閱: