Debian/Ubuntu 的 update-rc.d 使用教學

Debian

update-rc.d 是在 DebianUbuntu 內用來管理 /etc/init.d 目錄內的 scripts 工具。不管是 Nginx 或 Mysql 等相關服務,都可以在 /etc/init.d 目錄內找到相對應的 script 檔案,隨便打開一個 script 檔案就可以看到標頭有固定的格式寫法:

1
2
3
4
5
6
7
8
9
### BEGIN INIT INFO
# Provides:          gorush
# Required-Start:    $syslog $network
# Required-Stop:     $syslog $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the gorush web server
# Description:       starts gorush using start-stop-daemon
### END INIT INFO
[Read More]

Linode 推出新的 Datacenter 據點 Tokyo 2

Screen Shot 2016-11-22 at 10.53.16 AM

在半年前 Linode 13 歲生日送了一份很大的禮物給大家,就是免費讓大家升級記憶體,這個禮物只限定在非東京據點,對於東京的用戶只能等待,就在今天 Linode 終於宣佈新的服務據點 Tokyo 2,新的東京據點比照[現有的牌價]收費,官方也提供教學讓各地區快速的轉換到東京據點。

[Read More]

OpenSSH 安全性漏洞 CVE-2016-0777 and CVE-2016-0778

openssh

OpenSSH 今日公佈 Client Bug 漏洞 CVE-2016-0777 and CVE-2016-0778,發生原因是 SSH Clinet 跟 Server 溝通時,新功能 roaming 造成傳輸過程被惡意程式破解,影響的 OpenSSH 版本為 5.4 - 7.1. 大家快看看自己是否為這版本區間。此問題會發生在 SSH Client 而不是 Server 端,所以 Linux FreeBSDMacOS 都需要升級 OpenSSH,如果你是在 Windows 用 Putty 則不受影響。

[Read More]

Alpine Linux 挑戰最小 docker image OS

Screen Shot 2015-12-27 at 9.17.22 AM

Alpine Linux 是一套極小安全又簡單的作業系統,在現今 Docker Images 裡面,最主要推崇的就是 Ubuntu 作業系統,但是令人詬病的是 Ubuntu 還是不夠小,今天看到 Alpine 在 docker 內的大小大約是 5 MB,看到這 size 大小,相信是令人很震撼,之前要是看到這 size 大概只有 OpenWRT 編譯 BusyBox 才有可能的大小,但是 OpenWRT 最主要還是缺乏很多目前 popular 的套件,所以 Alpine 幫你解決這問題,提供大量的 Packages 讓開發者使用。底下就可以看出 Alpine 擊敗目前盛行的 docker images 大小比較圖。

[Read More]

Docker 救了 Debian SSH terminal

上週在處理實體機器時,不小心下了底下指令 $ dpkg --purge --force-all zlib1g 造成系統所有相關指令都不能使用,像是 ssh, scp, fetch, wget 等跟網路相關的指令都會出現底下錯誤訊息 curl: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory 本來想說可以透過指令將檔案抓回來,放回去就可以恢復了,但是所有指令幾乎都不能用,連 git 也出現該錯誤訊息,這時候最怕 terminal 斷線,如果斷線了,就要到機房去處理問題了。最後想到用 Docker 來處理,簡單幾個步驟就可以將檔案抓回來了 # 抓 debian images $ docker pull debian:7 # 進入 docker $ docker run -t -i debian:7 /bin/bash # 從 docker 複製檔案到 home 目錄,其中 e1bf3950b16c docker id $ docker cp e1bf3950b16c:/lib/x86_64-linux-gnu /home/ 完成後,在去 x86_64-linux-gnu 找到 libz. [Read More]

修復 Ubuntu 開機 boot loader

logo-Ubuntu

昨天下午本來想幫自己的筆電 (Ubuntu OS) 升級記憶體,結果因為機型過於老舊,以現在的記憶體時脈 1600 裝上去後,直接讓 Ubuntu 當機,反覆重新開機,無法向下相容,加上現在記憶體狂漲價,找不到更低階的記憶體安裝了,無奈的是,店員幫忙測試筆電,換個記憶體,結果連 Ubuntu 的 boot loader 都可以壞掉。我看店員很緊張的說,不好意思,可以幫忙備份,幫忙我重灌。結果我還是自己拿回家處理比較安心。自己也不知道為什麼換個記憶體,可以讓 boot loader 消失。底下是修復 boot loader 過程

[Read More]

HAProxy 搭配 CodeIgniter 取使用者真實 IP

前端 Load Balance 首選就是 HAProxy,後端架設 Nginx 搭配 CodeIgniter,紀錄使用者 IP 時,Nginx 總是只有抓到內部 IP 192.168.x.x,而無法抓到真實 Public IP,要抓到 Public IP 必須修改 HAProxy + Nginx 設定檔,HAProxy 只要在 Backend 地方加入 forward 選項,這樣 HAProxy 會送 X-Forwarded-For header 給後端 Nginx。

option forwardfor
[Read More]

HAproxy 搭配 Nginx port redirect issue

nginx-logo

HAproxy 是一套高效能分散式系統軟體,後端可搭配 Web 或 SQL 服務,這次在後端搭配 Nginx 出現 port redirect 問題,問題很簡單,在 Haproxy 設定 80 port 對應到內部三台 Nginx 機器,但是 Nginx port 設定 8080,這樣當我們在瀏覽網址如下:

http://aaa.bbb.ccc.ddd/test (請注意,最後沒有 slash 喔) 你會發現 Nginx 將網址轉成

http://aaa.bbb.ccc.ddd:8080/test/ 為了避免 Nginx 自動將 port 加入到網址列,我們可以透過設定 port_in_redirect,Nginx 預設將此設定為 On,所以將此設定為 off,並且重新啟動 Nginx 即可

port_in_redirect off;

How to install Gearman on Ubuntu or Debian with MySQL 安裝測試篇

Gearman 可以在背景幫忙處理繁瑣的工作,例如壓縮影片、處理縮圖、發送認證信…等,這次不會提到太多 Gearman 介紹,如果想瞭解 Gearman 可以參考小鐵兄寫的 Gearman 心得,此篇會筆記如何在 Ubuntu or Debian 安裝 Gearman 搭配 MySQL 服務,當然如果你不是使用 MySQL,也可以另外搭配 MemcachedSQLite 都可以

[Read More]