聚會時間公告: 因應COSCUP 2011, Kalug 8月份休會一次

四月 18, 2014

小惡魔AppleBOY
AppleBOY
小惡魔 – 電腦技術 – 工作筆記 – AppleBOY is about »

tag cloud

» Linode VPS 全面升級 Double RAM & SSD

linode_logo_gray

Linode 又來了驚人的舉動,現在開始支援 SSD 以及小時計費服務,可以參考官網最新發表的 The New Linode Cloud: SSDs, Double RAM & much more,內容講到硬碟現在全面升級為 SSD,而且是 native SSD servers。網路頻寬部份每個 Linode Host 都連接 40 Gbps 的頻寬,對外總頻寬為 160 Gbps,對內頻寬為 40 Gbps,當然根據個人買得 VPS 而有不同的對外頻寬。記憶體則是全面 Double 升級,原本最低的 1G 記憶體,現在都改為 2G 了,每個月才 20 美金,看起來又是被 DigitalOcean 刺激到,最小的 Linode 流量也改為 3 TB。來看看現在新的方案

小時計費服務最低為 0.03/hour,一個月 20 美金,蠻便宜的,對外頻寬也有到 250 Mbps。現在除了倫敦以外,都可以使用新的 Plan 了

最後可以參考最近 Linode 升級了哪些硬體或服務

四月 11, 2014

小惡魔AppleBOY
AppleBOY
小惡魔 – 電腦技術 – 工作筆記 – AppleBOY is about »

tag cloud

» StartSSL 關閉註冊 OpenSSL CVE-2014-0160 Heartbleed Security

heartbleed

這幾天 OpenSSL 發出很嚴重的 CVE-2014-0160 Bug 叫做「Heartbleed」,台灣資安公司 DEVCORE 也直接發布了一篇文章,請大家儘快升級系統,並且通知全部會員修改密碼,目前看到 Github 等大型網站都已經先將使用者 Session 資料清除,另外個人憑證部份也必須要更換,所以這幾天免費提供申請的 StartSSL 服務,被大量的使用者來申請,目前看到官方網站直接關閉註冊給個暫時的 warning 訊息 XD 如下圖

startssl

十二月 8, 2013

小惡魔AppleBOY
AppleBOY
小惡魔 – 電腦技術 – 工作筆記 – AppleBOY is about »

tag cloud

» Jenkins + Apache User Auth

jenkins_logo

上個月寫過一篇如何設定 Nginx + Jenkins 文章,可以參考: Jenkins + Nginx User Auth,這次筆記 Jenkins + Apache 設定方式

安裝 Jenkins

在 Ubuntu 環境,可以直接參考 Installing Jenkins on Ubuntu

$ wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
$ sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
$ sudo apt-get update
$ sudo apt-get install jenkins

設定 Apache

如果您是需要用一個特定 domain 也就是 jenkein.example.com,沒有 sub folder,你可以透過底下設定

啟用 Apache proxy 模組

$ a2enmod proxy
$ a2enmod proxy_http

Apache virtual host 部份加入底下設定

ProxyRequests Off
<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8080

設定到這邊,重新啟動 Apache 即可,如果你是使用 sub folder 的方式,有就是透過 www.example.com/jenkins 方式瀏覽,請換成底下設定

ProxyRequests Off
<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>
ProxyPreserveHost On
ProxyPass /jenkins http://127.0.0.1:8080/jenkins

但是你會發現 css, js, image 都讀取錯誤。這時候請修改 /etc/default/jenkins 將 JENKINS_ARGS 加入 –prefix 設定

JENKINS_ARGS="--prefix=$PREFIX --httpListenAddress=127.0.0.1 --webroot=/var/cache/jenkins/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT"

重新啟動 Jenkins 及 Apache 即可。最後透過 htpasswd 將 jenkins web 目錄鎖起來

<Location /jenkins/>
    AuthType basic
    AuthName "jenkins"
    AuthUserFile "/etc/apache2/conf/.htpasswd"
    Require valid-user
</Location>

十二月 7, 2013

小惡魔AppleBOY
AppleBOY
小惡魔 – 電腦技術 – 工作筆記 – AppleBOY is about »

tag cloud

» Javscript 18 歲生日歷史演進

resin.io 看到這篇 Happy 18th Birthday JavaScript! A look at an unlikely past and bright future. 裡面有些 Javascript 發展史,蠻有趣的,分享給大家看看。18 年前由 Netscape 和 Sun 共同 Release Javscript,在當年18天後,Ruby 也同時發佈了,底下來看看 Javscript 歷史演進。

JavaScript 發展史

1995: 由 Netscape 和 Sun 共同發佈 Javscript,並且命名為 MochaLiveScript,當時參與開發 Javascript 的其中一位負責人 Brendan Eich,現在為 Mozilla CEO。

1996: Microsoft Javscript 版本出現,並且命名為 JScript,同時發佈 Internet Explorer 3.0。這年也是 CSS 釋出第1版

1997ECMA 第1版釋出。

1998: Netscape 將 Netscape browser open source release 出來,並且成立 Mozilla Project。過了幾個月, AOL 買下 Netscape

1999: IE5 提出介紹 XMLHttpRequest

2001: IE6 正式 Release,截至目前為止,IE6 最大用戶還是在中國大陸 XD。

2002: 大家常用的 JSON 在這時候 Release,同時間 Mozilla 發佈 Firefox

2003: Apple 也不甘示弱發佈 Safari Beta Release。

2004: Google 發佈 Gmail released 產品,Gmail 用了大量 AJAX 技術,也造就現今的 Web Application。Google 挑4/1發佈,讓大家以為是惡作劇一場 XD。

2005: Apple open source Webkit,此專案是從 KHTML fork 出來的。同時間 Jesse James Garrett 發佈一篇 AJAX

2006: John Resig 發佈第1版 JQuery,現今的網站超過 90% 都會使用 jQuery,它被視為 “better cross-browser DOM API”。此年 Microsoft 同時發佈 IE 7。

2007: Douglas Crockford 講了一場 keynote 議題名稱為 JavaScript: The good parts 將來成為 O’Reilly 2008 年一本書。同年 Leonard Richardson and Sam Ruby 出了 RESTful Web Services 書。

2008: Google 推出自家瀏覽器 Chrome 和 V8 Engine,帶給瀏覽器不同的衝擊。

2009: 誰說 JavaScript 只能寫在 Client 端,Ryan Dahl 釋出 node.js,帶來用 js 寫 sever side 風潮,同年 PhoneGap 帶來 HTML5 和 JavaScript 整合到 Android 及 iOS。

2010: 一堆 JavaScript Library 同時釋出 NPM, BackboneJS, RequireJS

2012: Single-page app frameworks 出現: AngularJS 1.0, Ember 1.0.pre。

2013: Firefox OS 用 JavaScript 撰寫 UI Layer,並且正式 Release,Mozilla 同時發佈 asm.js

JavaScript 效能

Jan T. Sott 用 Kraken benchmark 發佈一篇 performance 報告,測試環境從 Firefox 3.5 to Chrome 23 同環境下測試

overall_kraken_2012

可以參考原始連結

JavaScript 生態

我們來看看眾多語言的變化

npm

可以發現 Node.js 正在往上衝阿,相信到 2015 年可以追上 Rubygems 及 Maven Central. 除了 55000+ 的 NPM package 及 6000+ package in broser 帶給使用者更好的體驗

另外 Github 也統計用其他語言寫的工具給 JavaScript 用

最後看看 Github repositories 的生態

jsgh 資料來源 Twitter,JavaScript 往上衝阿,難怪全世界都在缺 Frond End Engineer。

總結

現在用 JavaScript 寫 Client-Side 已經不稀奇了,現在有很多 Project 開始設計如何透過 JavaScript 去控制硬體,可以看到 File API and Device API 或者是 Chrome Apps, Mozilla WebAPI, and Tizen Web APIs 等專案,這些專案共通點就是希望開發者可以透過 JavaScript 來控制硬體裝置。另外也可以透過 node-webkit 來溝通。

想了解 EmbeddedJS 可以關注現有的專案或研討會 Nodebots, Nodecopter, Tessel.io, Espruino, Device.js,或者是 application 像是 heimcontrol.js and Google Coder for Raspberry Pi,很難想像 18 年後的 JavaScript 會變成什麼樣子 XD。

七月 27, 2013

小惡魔AppleBOY
AppleBOY
小惡魔 – 電腦技術 – 工作筆記 – AppleBOY is about »

tag cloud

» Linode 升級硬碟空間

Linode 繼上次升級了硬體及網路設備,這次又來升級硬碟空間,每個方案將空間調到兩倍 Storage Space Doubled!,所以整體方案表格如下:

Linode

今年的動作還真多,果然是受到同業 DigitalOcean 的影響,網路虛擬主機還是需要一點競爭比較好。

七月 17, 2013

小惡魔AppleBOY
AppleBOY
小惡魔 – 電腦技術 – 工作筆記 – AppleBOY is about »

tag cloud

» 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;

四月 28, 2013

小惡魔AppleBOY
AppleBOY
小惡魔 – 電腦技術 – 工作筆記 – AppleBOY is about »

tag cloud

» nginx 1.4.0 釋出並支援 SPDY

nginx-logonginx-logo

很高興看到 Nginx Release 1.4.0 版本,此新版本開始支援 SPDY module,對於 SPDY 還不熟悉了解的,可以參考今年 2013 WebConf 講師 ihower 介紹的 A brief introduction to SPDY – 邁向 HTTP/2.0,要提升整個 Web Performance,可以將 SPDY 導入,對於使用 Apache 使用者,請參考 mod_spdy,如果是 Nginx 用戶,在 1.3.x 版本,可以直接用官方 patch,升級到 1.4.x 就不需要 patch 了,但 OS 是 UbuntuCentOS 系列是需要自行編譯,這次會筆記在 CentOS 下將 spdy 編譯進系統。

安裝方式

先看 Ngix 是否有支援 spdy,直接下 nginx -V 觀看

nginx version: nginx/1.1.19
TLS SNI support enabled
configure arguments: –prefix=/etc/nginx –conf-path=/etc/nginx/nginx.conf –erth=/var/lib/nginx/body –http-fastcgi-temp-path=/var/lib/nginx/fastcgi –http-lb/nginx/proxy –http-scgi-temp-path=/var/lib/nginx/scgi –http-uwsgi-temp-path==/var/run/nginx.pid –with-debug –with-http_addition_module –with-http_dav_moith-http_image_filter_module –with-http_realip_module –with-http_stub_status__xslt_module –with-ipv6 –with-sha1=/usr/include/openssl –with-md5=/usr/includ/buildd/nginx-1.1.19/debian/modules/nginx-auth-pam –add-module=/build/buildd/d/nginx-1.1.19/debian/modules/nginx-upstream-fair –add-module=/build/buildd/ng


看到上述結果,沒有發現 http_spdy_module 模組,代表並無編譯進去,底下安裝過程,是基於 CentOS 6.4 Release 環境。安裝前請先下載 Nginx 1.4.0openssl 1.0.1e 版本。

# generate makefile
cd /tmp/nginx-1.4.0 && ./configure \
    --prefix=/usr/share/nginx \
    --sbin-path=/usr/sbin/nginx \
    --conf-path=/etc/nginx/nginx.conf \
    --error-log-path=/var/log/nginx/error.log \
    --http-log-path=/var/log/nginx/access.log \
    --pid-path=/var/run/nginx.pid \
    --user=nginx \
    --group=nginx \
    --with-http_realip_module \
    --with-http_addition_module \
    --with-http_xslt_module \
    --with-http_image_filter_module \
    --with-http_geoip_module \
    --with-http_sub_module \
    --with-http_dav_module \
    --with-http_flv_module \
    --with-http_mp4_module \
    --with-http_gzip_static_module \
    --with-http_random_index_module \
    --with-http_secure_link_module \
    --with-http_degradation_module \
    --with-http_stub_status_module \
    --with-http_perl_module \
    --with-mail \
    --with-mail_ssl_module \
    --with-http_ssl_module \
    --with-http_spdy_module \
    --with-openssl=/tmp/openssl-1.0.1e
cd /tmp/nginx-1.4.0 && make && make install

比較需要注意的事,假如系統已經安裝好 nginx 版本,預設執行程式會在 /usr/sbin/nginx,所以編譯時,請務必指定此路徑蓋掉原有的執行檔,這樣系統還是可以透過 init.d 啟動或關閉 nginx。

啟動 spdy 模組

為了將 https 及 spdy 同時 listen 443 port,OpenSSL 務必支援 Next Protocol Negotiation,所以版本要 1.0.1 以上。在 nginx.conf 設定如下

server {
    listen 443 ssl spdy;

    ssl_certificate server.crt;
    ssl_certificate_key server.key;
    ...
}

偵測伺服器是否支援 spdy

經過安裝完成 Nginx with spdy module,要確定伺服器有無支援,可以透過 Firefox addon 或 Chrome extension,底下是 SPDY indicator 下載連結

* Firefox SPDY indicator
* Chrome SPDY indicator

要如何測試呢?打開 Chrome 瀏覽器,輸入 Google 網址,你會發現網址列多一個綠色勾勾,那就代表伺服器有支援 SPDY Module。

四月 13, 2013

小惡魔AppleBOY
AppleBOY
小惡魔 – 電腦技術 – 工作筆記 – AppleBOY is about »

tag cloud

» Linode 最後優惠 升級記憶體

Linode VPSLinode VPS

Linode 最後的優惠出來了,之前寫了一篇 Linode VPS 升級網路及硬體設備,回顧 Linode 今年的優惠大清倉,第一次專注在網路效能及流量頻寬升級,第二次則著重在硬體升級,也就是升級 CPU,那這次要升級什麼呢,難不成 Linode 有聽到上一篇最後我講到的心聲,就是記憶體升級啦,Linode 大手筆將全部 Plan 的記憶體都 double,底下這張圖就是升級過後的價目表。

Linode - Xen VPS Hosting 2013-04-13 11-04-36Linode - Xen VPS Hosting 2013-04-13 11-04-36

最便宜的方案就有 1G 了 Ram,每個月 2TB 流量,8 CPU,一個月才 20美金,真的是蠻便宜的,現在問我 AWS 跟 Linode 選哪個,我會大力推薦 Lindoe 了,不過升級此 Ram,每個方案會多 0.05 美金,所以最低消費從每個月 19.95 USD 會變成 20 USD,不過還是很值得啦。現在可以馬上登入 Linode 後台按下升級按鈕,系統會自動升級,並且重新開機。

目前可以升級的區域如下

Fremont, CA: TBD
Dallas, TX: Upgrades are available
Atlanta, GA: Upgrades are available
Newark, NJ: Upgrades are available
London, UK: Upgrades are available
Tokyo, JP: Upgrades are available

日本那邊已經升級完成,但是我的 Linode 似乎沒看到升級按鈕,寫個 Ticket 詢問看看。Enjoy it。

三月 21, 2013

小惡魔AppleBOY
AppleBOY
小惡魔 – 電腦技術 – 工作筆記 – AppleBOY is about »

tag cloud

» Linode VPS 升級網路及硬體設備

Linode VPSLinode VPS

Linode 是我最喜歡的國外 VPS 廠商,重點是速度跟穩定度都還不錯,不過今年不知道是不是被 DigitalOcean 刺激到?所以這個月將網路設備全面升級,不僅降低 latency 和 redundancy,出口端網路設備全部換成 Cisco Nexus 7000 series 等級,此系列提供了足夠的 Mac Address 及處理大量 Request,另外 access layer switches 則換成 Cisco Nexus 5000 series switches 跟 Nexus 2000 series Fabric Extenders,這些都不是重點,重點是每台 VPS 現在對外流量都變成原先的十倍,當然對內流量是無限制的,底下是 Linode 最新網路架構圖

Linode-NextGen-NetworkLinode-NextGen-Network

對外流量都增加十倍如下表,真是太超過了。

Linode 512 upgraded from 200GB to 2000GB (2TB)
Linode 1G upgraded from 400GB to 4000GB (4TB)
Linode 2G upgraded from 800GB to 8000GB (8TB)
Linode 4G upgraded from 1600GB to 16000GB (16TB)
Linode 8G upgraded from 2000GB to 20000GB (20TB)

這樣就算了,接著升級 VPS 硬體,每個 Linode 全升級成 8 Core CPU Instances,這簡直是太瘋狂了,已經讓作者忍不住來玩看看了,官方直接提供了重新編譯系統核心的速度,使用機器為 Linode 1024 with 8 cores,編譯完成時間大概為 100 秒,這速度……

apt-get update && apt-get -y install build-essential
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.8.tar.xz
tar xf linux-3.8.tar.xz
cd linux-3.8/
make distclean && make defconfig && time make -j8

real 1m41.861s
user 10m37.423s
sys 1m41.298s

最後文章提到,那硬碟呢?人家 DigitalOcean 全面採用 SSD,那 Linode 呢?沒關係,官方說這是未來的計畫,要全面換成 SSD 需要一大筆資金阿,所以讓大家期待一下吧。不過 CPU 已經這麼快了,那 Ram 呢?大家其實希望增加的是 Ram 吧 XD

最後補一張圖來證明真的是 8 Core CPU:

linodelinode

Ref 兩篇官方說明:

Linode NextGen: The Hardware
Linode Nextgen: The Network

十二月 16, 2012

小惡魔AppleBOY
AppleBOY
小惡魔 – 電腦技術 – 工作筆記 – AppleBOY is about »

tag cloud

» 虛擬主機商 Linode 增加 20% 儲存空間

Linode VPS

Linode 在美國時間 2012/12/14 宣佈全部方案增加 20% 儲存空間,Linode 是一個蠻穩定的虛擬主機商,除了有時候常常維護以外,目前找不到有任何值得探討的缺點,每年周年慶也推出贈送 100 美金的方案,也不定時增加記憶體,像是以前有 720方案,現在已經看不到了,每個月39美元就可以租到 1GB Ram 的方案,這次增加儲存空間,可以透過後台方式將硬碟容量調整。真的是太感謝 Linode 了。如果想玩 VPS 我首推的就是 Linode,或者是可以嘗試免費的 AWS Free Usage Tier EC2。Linode 容量調整如下:

Linode 512 goes from 20GB to 24GB
Linode 1GB goes from 40GB to 48GB
Linode 2GB goes from 80GB to 96GB
Linode 4GB goes from 160GB to 192GB
Linode 8GB goes from 320GB to 384GB
Linode 12GB goes from 480GB to 576GB
Linode 20GB goes from 800GB to 960GB

Related View

九月 11, 2011

小惡魔AppleBOY
AppleBOY
小惡魔 – 電腦技術 – 工作筆記 – AppleBOY is about »

tag cloud

» Linode VPS Inbound 流量將不再收費

Linode VPS

如果有在玩虛擬主機的朋友們,這是一項非常大的消息(Linode Reduces Transfer Pricing),那就是從2011年9月1日開始,只要是流入 Linode VPS 或者是 NodeBalancer 伺服器的流量都是免費,至於流出流量呢?只要是超過限制的 transfer pool 都是以 $0.10/GB 來計費,這相當便宜阿,Linode 看的出來蠻用心的,可以租一台當作 backup server 也不賴,價格來說也不會很貴啦,最小 VPS 每個月流量給大 200G/month,其實也用不太完,但是網路的速度,可能就要評估看看,不要依賴 Ping 的 ttl 值,以直接下載檔案速度來觀看也許會比較適合喔。

Related View

三月 20, 2010

小惡魔AppleBOY
AppleBOY
小惡魔 – 電腦技術 – 工作筆記 – AppleBOY is about »

tag cloud

» [FreeBSD]high performance caching reverse proxy: Varnish (安裝架設篇)

varnish-logo-red-64
在上禮拜跟 DarkHero 兄聊到 How To Build a Scalable Web Site (3/6) 的上課講義,互相討論了 MySQL Load balance 以及 http reverse proxy 的方式,以前自己有用 HAProxy 當作 Web 平衡負載,順便紀錄了 HAProxy FreeBSD 安裝方式,這次要來介紹今天重點:Varnish Cache Server,在近幾年流行的 Caching 機制,大家會想到 Squid,只要您設定良好的 Squid 參數,它一定運作的非常穩定,然而它的核心依然是 forward proxy,要架設成 Reverse Proxy 還必需要設定一些參數才可以達到,是有一定的困難性,然而 Varnish Cache Server 底層就是高效能 caching reverse proxy,也因為 Squid 是 1980 年發展出來的,程式架構過於老舊,可以參考 ArchitectNotes 瞭解這部份詳情。也許您會問到 Varnish 可以架設成 forward proxy 嗎?答案是可以的,但是您也許不會這麼做,因為它需要 DNS 技術,以及需要一個非常大且複雜的 Varnish VCL(Varnish Configuration Language) file。

1. 今天要介紹如何在 FreeBSD 系統安裝,在介紹之前,系統必須先安裝好 apache,這樣才可以正確啟動,利用 ports 安裝:

cd /usr/ports/www/varnish/
make install clean

2. 修改 /etc/rc.conf

# varnishd
varnishd_enable="YES"
varnishd_listen=":80"
varnishd_admin=":81"
varnishd_backend=":5566"
varnishd_config="/usr/local/etc/varnish/default.vcl"

上面設定意思是說 Varnish listen on port 80,傳送 traffic 到後端 5566 port,管理連接埠是 81,也可以使用指令方式:

varnishd -a :80 -b localhost:8080 -T localhost:6082

Varnishd listen on port 80,and forwarding traffic to a web server listen on localhost port 8080. It also turns on the management interface on port 6082.

3. 修改 default.vcl (Varnish Configuration Language)
VCL 檔案告訴 Varnishd 正確的處理每個 request processing,包含在接受到 request 之前所處理的行為 vcl_recv(),另外還有 vcl_hit()、vcl_miss() 等…,都是用來處理 cache 如果存在或者是不存在時的情境 request。FreeBSD 預設放在 /usr/local/etc/varnish/default.vcl。打開此檔案,您會看到:

backend default {
   .host = "127.0.0.1";
   .port = "80";
}

您只要把 host = “127.0.0.1″ 改成你後端要連接的 ip 或者是 host,這樣 Varnish 會 forward traffic 到您的 web server。接下來只要啟動 apache 跟 Varnish 就算是初步架設完成。

/usr/local/etc/rc.d/apache22 restart
/usr/local/etc/rc.d/varnishd restart

Varnish_01
大家可以看到 61.*.*.* 連到本機 80 port,接下來 Varnish 在開啟隨機 57475 port 連接到 Web Server 5566 port。

Q:如何讓 apache 紀錄正確的 Client IP 到 log 檔案呢?
1. 打開 Vcl config 檔案,寫入
Varnish configuration:

sub vcl_recv {
  # Add a unique header containing the client address
  remove req.http.X-Forwarded-For;
  set    req.http.X-Forwarded-For = client.ip;
  # [...]
}

2. 開啟 apache httpd.conf 加入此行:

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" varnishcombined

Varnish_02

Q:如何讓 PHP 程式紀錄正確的 Client IP?
可以參考底下程式碼就可以完全抓到 Proxy 後面真正使用者IP,否則您的 Web 只會抓到 Reverse Proxy 的 IP Address。

function getIP() {
  if (validip($_SERVER["HTTP_CLIENT_IP"])) {
    return $_SERVER["HTTP_CLIENT_IP"];
  }
  foreach(explode(",",$_SERVER["HTTP_X_FORWARDED_FOR"]) as $ip) {
    if (validip(trim($ip))) {return $ip;}
  }
  if (validip($_SERVER["HTTP_X_FORWARDED"]))
  {
    return $_SERVER["HTTP_X_FORWARDED"];
  }
  else if (validip($_SERVER["HTTP_FORWARDED_FOR"]))
  {
    return $_SERVER["HTTP_FORWARDED_FOR"];
  }
  else if (validip($_SERVER["HTTP_FORWARDED"]))
  {
    return $_SERVER["HTTP_FORWARDED"];
  }
  else if (validip($_SERVER["HTTP_X_FORWARDED"]))
  {
    return $_SERVER["HTTP_X_FORWARDED"];
  }
  else
  {
    return $_SERVER["REMOTE_ADDR"];
  }
}

function validip($ip) {
  if (!empty($ip) && ip2long($ip)!=-1) {
    $reserved_ips = array (
      array('10.0.0.0','10.255.255.255'),
      array('127.0.0.0','127.255.255.255'),
      array('169.254.0.0','169.254.255.255'),
      array('172.16.0.0','172.31.255.255'),
      array('192.168.0.0','192.168.255.255'),
    );
    foreach ($reserved_ips as $r) {
      $min = ip2long($r[0]);
      $max = ip2long($r[1]);
      if ((ip2long($ip) >= $min) && (ip2long($ip) <= $max)) return false;
    }
    return true;
  }
  else
  {
    return false;
  }
}

Q:rotate Varnish log file every day?
打開 /etc/newsyslog.conf,加入底下兩行

/var/log/varnish.log        640     7   *   @T00    JB  /var/run/varnishlog.pid
/var/log/varnishncsa.log    640     7   *   @T00    JB  /var/run/varnishncsa.pid

每天12點進行 log 備份,使用 gzip 壓縮 log 檔案。

Related View

四月 5, 2009

小惡魔AppleBOY
AppleBOY
小惡魔 – 電腦技術 – 工作筆記 – AppleBOY is about »

tag cloud

» New in Labs:Gmail search autocomplete 快速找尋使用者 email 跟附件檔案

Gmail 又推出一個 Lab 功能了,這個功能我想是大家所期待許久的,可以直接對於搜尋使用者跟附件有相當大的幫助,可以針對附件,郵件裡面的 vedio,圖片副檔名 .jpg、.png、.doc 下去做搜尋的動作,很方便的,也可以針對郵件的 email 或者是姓名搜尋,提供了 autocomplete 的作用,您只需要打入兩個關鍵字,就會出現相關的使用者姓名或者是 email 喔,方便的,可以參考:New in Labs: Gmail search made easier (and lazier)

使用方法只要去 Settings -> Labs 把功能打開即可
Google_01 (by appleboy46)

在 search 欄位輸入 at 兩個字,就會出現搜尋附件檔案的動作:
Google_02 (by appleboy46)
也可以輸入中文姓名,就會幫忙找到相關的部份了:
Google_03 (by appleboy46)

Related View

support:

biggo.com.tw

A Django site.