分類
系統技術

再談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 可以參考之前圖片用法的介紹:

http://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;

如此即可, 請參閱:

分類
系統技術

太棒的DNS-TWNIC的101.101.101.101

之前介紹過 1.1.1.1, 8.8.8.8, 9.9.9.9 (https://diary.tw/archives/185), 現在有個台灣的 101.101.101.101, 雖然長, 不過也十分好記, 因為台灣有個 101高樓啊.

官方網站說明: http://101.101.101.101/

這個 DNS 的重點在官網上說明的:

隱私優先

我們絕不會出售您的資料,或是用來定位廣告。

我們絕不會記錄您的 IP 位址 。
而且我們委由 PwC Taiwan 每年審核我們的系統,確保我們說到做到。

這樣真的很棒呢, 而且也有提供 ipv6 版本的: 2001:de4::101 / 2001:de4::102 呢.

101.102.103.104 是他的備份 DNS 是不是也十分好記呢?

另外參考看看 mobile01 上的網友測試:
https://www.mobile01.com/topicdetail.php?f=507&t=5496792

繼續閱讀:
https://free.com.tw/quad101/

 

分類
系統技術

使用play-with-docker快速建立mongodb測試環境

使用 play with docker: https://play-with-docker.com 可以快速建立 docker container 環境, 每次可以使用 4個小時, 供測試驗證應用.

進入 play with docker 後, 使用以下指令進行 mongodb 的建立:

docker run --name some-mongo -d mongo

當然因為沒有 mongo 的 image, 所以會進行 pull, 並發起一個 container 執行 mongodb.

接下來可以使用 docker ps 來檢查是否已正常執行.

若要進入該 instance 裡, 可以使用以下指令:

docker exec -it some-mongo /bin/bash

就可以進行該 mongo instance 中的 bash 中, 進入 db 的 shell , 可以再下指令: mongo, 即可正常進入該 mongodb 的 shell 中, 接下來就可以使用大家熟悉的 mongo 指令, 如:

use [db_name]
db.createCollection(“[collection_name]”)
db.[collection_name].insert({xxx})

等指令.

分類
FreeBSD/Linux

WIFI AP使用頻道掃描

在設置家用 WIFI AP時, 有時會有收訊好, 但品質不好的問題, 若有線沒有問題的狀況下, 即使 WIFI AP 收訊格數不錯, 也沒有好的品質時, 可以將 wifi 的 channel 和附近訊號較強的 wifi ap 分開, 以達成不會互相干擾導致的寬頻不良狀況.

可以使用工具如下(免費):

Android: Wifi Scanner: https://play.google.com/store/apps/details?id=com.farproc.wifi.analyzer
iOS: AirPort 工具程式: https://itunes.apple.com/tw/app/airport-%E5%B7%A5%E5%85%B7%E7%A8%8B%E5%BC%8F/id427276530?mt=8
Windows: Wireless netview: http://www.nirsoft.net/utils/wireless_network_view.html

利用這些工具可以查找 wifi ap 使用的 channel, 參考訊號較強的 ap channel, 必須分開不互相在同一頻道上, 可減少 wifi ap 互相干擾的狀況, wifi ap channel 的設定, 一般出廠值都會設定在 auto, 也就是自動選擇, 若要進行手動調整, 建議是在訊號不錯的狀況下, 但頻寬表現不良時使用, 沒有必要也不需要手動進行調整.

其中以 wifi scanner 來看:

集中在 1, 11 上, 就可以將自己的 ap 設定在 4, 6, 7 上以分離不同頻道來進行 wifi ap 的傳輸優化.

另外 iOS 的 AirPort 工具程式, 要到設定裡, AirPort 中的 Wi-Fi 掃描器打開(預設為關閉), 就可以在不用 JB 的狀況下掃描 wifi ap 的頻道.

參考資料:

https://www.accessagility.com/blog/free-wifi-scanner-for-iphone-and-ipad-without-jailbreak

https://www.technonutty.com/2016/04/wifi-analyzer-channel-scanner.html