知識分享

location的設定,可以參考官網的說明。語法如下:

location [ = | ~ | ~* | ^~] uri { ... }
location @name

其中,中括號[]裡的符號,以下稱為修飾符;uri 稱為前綴字串。
@name則是會定義一個location變數,類似連結,用來讓request轉向。不會進行正則匹配,也不能使用巢狀結構。

先說明匹配的優先順序

  1. 當接收到request時,首先會找出沒有加修飾符,僅有前綴字串的項目,如根目錄 /。nginx會選取有匹配的項目並記住與request最匹配(最長)的項目
  2. 接著檢查有加修飾符的項目,根據這些項目在設定檔中的順序,依次檢查,並選擇第一個匹配成功的項目
  3. 若沒有任何一個正則匹配的話,則應用第1步所找到的項目。

location 後方接的修飾符,用以下範例說明比較容易理解

  • ~ 波浪符號,表示後面接的是一個正則匹配,有區分大小寫。
更多
  1. 取得遠端文件
    git clone 目標網址
     
  2. 建立分支Branch
    git branch 分支名稱
  3. 切換到特定分支
    git checkout 分支名稱
  4. 建立分支Branch,並切換到新的分支
    git checkout -b 分支名稱
  5. 查看目前所在分支
    git branch [-r: 所有遠端分支 | -a: 所有本地及遠端的分支]
  6. 刪除分支
    git branch [-r:遠端] -d 分支名稱
     
  7. 合併指定分支到目前的分支
    git merge 分支名稱
  8. 合併分支,但不產生commit
    git merge 分支名稱 --no-commit
  9. 將某個commit的內容合併到目前的分支
    git cherry-pick 分支的SHA碼
     
  10. 查看目前已做的變更,及目前所在分支
    git status
     
  11. 將檔案加入stage
    git add 檔案名稱
  12. 將所有檔案加入stage(新增且已經commit過的檔案)
    git add .
更多

指令範例:

dursh dl -select module_name

 

今天調整了一個網站的設定值,加了一個301 redirect後,重啟nginx結果發現調整的結果一直出不來,一直500 error,檢查了log檔,發現了這個錯誤

[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)

解決的辦法是把目前的nginx的進程砍掉,然後重新啟動nginx

指令:

sudo fuser -k 80/tcp
service nginx start

max_children:決定可接受的併發數,一般children的值是網站最高併發數+浮動值。這個值會決定使用多少記憶體,一般一個children是20-30M左右,要大於max_spare_servers。

max_requests:每一個child接受的request數,當超過這個數時,就把自己殺死然後重新建立一個child。

request_terminate_timeout:每個request最長的執行時間。

start_servers:起始進程數,須介於min_spare_servers及max_spare_servers之間

min_spare_servers:最小進程數

max_spare_servers:最大進程數

process manager分為以下三種類型,

  • Static:固定的進程數,適合只有一個網站的伺服器。
  • Dynamic:動態的進程數,適合有多個網站且負載較重(每日10k以上request)的伺服器
  • ondemand:依需求調整,比較適合pool量大的伺服器,即伺服器中放了很多低負載(每日只有幾百或更低request)的網站。

 

參考文章

更多

excel有個好用的功能,就是儲存格可以自訂格式,可以讓我們簡單的輸入內容,然後直接產出我們要的格式,可以省去不少麻煩。

雖然自訂格式在設定頁中,就有很多範例了,不過就獨缺「星期」的部份,查了一下,覺得這個應該算密技吧@@

用範例說明一下怎麼設定:如今天2015/04/16

  • yyyy/mm/dd  產出 2015/04/16
  • yy'mm/dd 產出 15'04/16

加星期

  • mm/dd ddd   產出   04/16 Wed
  • mm/dd dddd 產出   04/16 Wednesday

星期比較特別,要中文的話

  • mm/dd(aaa)   產出   04/16(週三)
  • mm/dd(aaaa) 產出   04/16(星期三)

 

 

官方文件在此:https://support.google.com/adwords/answer/6095821

Adwords轉換碼的原理,基本上就是在轉換完成的網頁中放一段程式碼,去告訴adwords有人跑到完成轉換了。

不過如果完成轉換的頁面不在我們可以控制的網站底下的時候,或者他只是一個檔案下載的連結,這樣就會產生不會經過這個流程,也就沒辦法計算轉換。

解決之道,就是以javascript去偵測點擊連結的動作,不完美不過基本上還堪用。作法如下:

<!-- 放進購物車轉換頁上的 Google 程式碼
    在您的 html 網頁中,有人按下所選連結或按鈕時,
    加入程式碼片段,並呼叫
更多

步驟如下:

  1. 到/dev目錄檢查硬碟是否存在,硬碟通常是 hd* 或者 sd* 開頭,通常還沒有格式化的硬碟,不會有數字序號
    ls /dev/[sh]d*
     
  2. 檢視硬碟資訊,假設新的硬碟是 sdb,確定一下沒有任何的分割磁區
    fdisk -l /dev/sdb
     
  3. 再次利用fdisk分割磁區
    fdisk /dev/sdb
    接著輸入n 開始增加新磁區,如果沒有要分割磁區的話,接著就都按Enter使用預設值即可。完成後按w把分割表寫入硬碟。
     
  4. 再次檢視硬碟資訊,這時候應該就會看到 /dev/sdb1的資訊了
    fdisk -l /dev/sdb
     
  5. 分割完硬碟之後,當然就是格式化了,本例將磁碟格式化成ext4格式,要注意的是格式化的對象是磁區,不是整個硬碟
    mkfs -t ext4 /dev/sdb1
     
  6. 格式化完,還要記得把他掛載上去,首先找到這顆硬碟的UUID
    sudo blkid
     
  7. 然後編輯/etc/fstab ,利用UUID把硬碟在開機時自動掛載上去,本例是掛載到/datas目錄,格式大致如下
    UUID=
更多