分類
系統技術

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

分類
好用軟體

uptimerobot public status page功能

好用的 uptimerobot 服務, 參考之前文章: https://diary.tw/archives/216

之前 public status page 是在付費版本才有的, 現在已能在免費版本建立, 可以利用這個功能建立更方便的監控介面, 官方的監控在這裡(也是實際的 demo):

https://status.uptimerobot.com/

設定好之後, 可以使用 standard url 如: https://stats.uptimerobot.com/xxxx 或自訂網域方式(它也會協助建立 free ssl)實施, 配合自訂密碼, 方便呈現完整的 monitor dashboard.

免費版本無法看到 weekly view 與 monthly view, 僅有 daily view (僅最後 7天). 但也十分能滿足一般應用了.

還有整合進 slack channel 功能也十分方便, 不同的通知模式, 增進使用便利性.

請參閱官方相關資料:
https://blog.uptimerobot.com/introducing-public-status-pages-yay/
https://blog.uptimerobot.com/status-pagescustom-domains-are-now-https-enabled/

分類
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/

分類
PHP

php上實作301 Redirect指示方式

在 php 中若需要重導客戶端, 可以使用 302 重導:

header("Location: http://newlocation");

在不指定 response status 時, 上述內容會使用 302 重導.

若需要使用 301 重導, 可以使用如下程式:

1. 先宣告重導指示, 再進行重導:

header("HTTP/1.1 301 Moved Permanently");
header("Location: http://newlocation");

2. 直接使用 header 中的 response status 參數:

header("Location: http://newlocation", TRUE, 301);

以上兩種方式皆可以重導客戶端至指定目標, 並且以 301 Moved Permanently 方式指示.

繼續閱讀:
https://blog.longwin.com.tw/2015/09/php-301-302-redirect-header-2015/
https://stackoverflow.com/questions/7324645/php-header-redirect-301-what-are-the-implications
https://www.php.net/manual/en/function.header.php

分類
數學

有難度的Wi-Fi password


來解看看, 用 wolframalpha:

https://diary.tw/s/intwifi

結果答案是…. 3.141592653589…..

繼續閱讀:
https://news.tvbs.com.tw/fun/989791
https://gotv.ctitv.com.tw/2017/03/435561.htm
https://www.newmobilelife.com/2016/11/01/the-most-difficult-wifi-password-in-the-world/

分類
手機大未來

Subway集點卡使用echoss技術

從 subway 活動看來的:

https://service.12cm.com.tw/subway/campaign/2019/show_stampcard_campaign

需要 login line 帳號, 即可看到畫面.


使用電子數位章, 配合 line 帳號登入, subway 的官方說明可以參考:

http://www.twsubway.com.tw/GoWeb2/include/index.php?Page=3-1&event01=14921144735d4b8f547b8bd

目前星巴克的多項活動也都用這家公司的技術, 參閱之前的文章:
https://diary.tw/archives/54

使用了多點觸控的數位章來進行活動集點, 核銷等作業, 十分有趣也實用.

分類
數學

[數學]絕對值特性

由於 x<-1 與 x>7, 所以先找出中點 5/2, 然後用絕對值來減中點得外部的定值, 之後化簡得求出a, b的值.

 

分類
Javascript

bs_grid動態給定filter rule

bs_grid 是一個很方便的 data grid 功能介面, 可惜沒有支援 bootstrap 4, 不過在 bootstrap 3 下, 非常方便好用. github 連結: https://github.com/pontikis/bs_grid

今天遇到的問題是需要動態下 filter rules, 但在官方資料上, 僅能做預設, 如: https://www.pontikis.net/labs/bs_grid/demo/set-rules/

於是研究一下 github 上的 source code, 其實可以透過動態設定 filter rules 並使用 init 方法來進行動態更新介面, 程式如下:

$("#mygrid").bs_grid('getOption', 'filterOptions').filter_rules.push({
    "condition": {
        "filterType": "text",
        "field": "dataid",
        "operator": "equal",
        "filterValue": [
            "2"
        ]
    },
    "logical_operator": "AND"
});
$("#mygrid").bs_grid('init');

 

如此一來便能進行在動態下新增過濾器功能, 達成所需.

 

分類
程式技術

有趣的iOS上Safari播放mp4問題

今天在測試一個 nginx reversed proxy 上, 代理 upstream server mp4 檔案時的播放問題.

之前沒特別有這個狀況, 但今天開始不能播放(感覺應該是在ios 12.4起發生), 十分有趣, 從 nginx server log 也看不出來原因, 只知道 nginx server 在 ios safari request 時, sent-byte 大小小於原始的 mp4 檔案, 所以也只能從 ios safari 的 developer mode 來著手.

先進行 ios safari developer mode, 可以參考:

https://unrealnavigation.com/blog/web-inspector-with-ios-simulator

然後發現原來 safari 會 request byte-range 0-1 這樣的狀況, 難怪都不會送出完整結果, 這樣一來原因就明確了, 實務上的狀況可以參考這篇:

https://www.stirtingale.com/guides/2018/10/mp4-not-working-cloudflare

若是原本的 server 沒有支援 byte-range 時, 會導致 status 200 而非 safari 預期的 206, 而導致失敗. 接下來就可以來找解決方案.

以 nginx proxy_pass 的反向代理結構來看, 可以利用這個方案:

https://stackoverflow.com/questions/22728016/nginx-is-not-accepting-range-of-bytes

使用 proxy_force_ranges on; 即可.

當然, 原本的 upstream 也需要有支援才能解決.

如此一來, 便能在 ios safari 於 request mp4 資源時, 下達的 byte-range 於快取或未快取內容皆可正常工作.

PS. 於查找過程找到一篇介紹 nginx revered proxy hash key 算法資料可供參考:
https://tomme.me/nginx-proxy-cache-server/