小惡魔 - AppleBOY - 小惡魔 - AppleBOY

0.0

给小惡魔 - AppleBOY - 小惡魔 - AppleBOY打分

start start start start start

感谢您打了2

详情

全站展示位

Go 語言用 pprof 找出程式碼效能瓶頸小惡魔AppleBOY

Go 語言除了內建強大的測試工具 (go test) 之外,也提供了效能評估的工具 (go tool pprof),整個生態鏈非常完整,這也是我推薦大家使用 Go 語言的最大原因,這篇會介紹如何使用 pprof 來找出效能瓶頸的地方。假設開發者在寫任何邏輯功能時,發現跑出來的速度不是想像的這麼快,或者是在串接服務流程時,整個回覆時間特別久,這時候可以透過 benchmark 先找出原因。 1 go test -bench=. -benchtime=3s ./lexer/ 。。。

推荐

CodeIgniter 終於找到新東家 British Columbia Institute of Technology 英屬哥倫比亞理工學院小惡魔AppleBOY

自從去年 CodeIgniter 宣佈要開始找尋新東家,我就很期待下一個新東家會是誰,終於在今天公佈了新東家 British Columbia Institute of Technology 英屬哥倫比亞理工學院 (BCIT),官方也正式公佈一篇 Your Favorite PHP Framework, CodeIgniter, Has a New Home,去年到現在 EllisLab 就收到大量的候選人信件,但是困難的就是要從一堆候選人中選出一位最適合 CodeIgniter 新雇主,最後決定人選就是 BCIT,BCIT 是一間理工學院學校,裡面有超過 4 萬 8 千名學生,最重要的是,每年學校都會培養 150 名 CodeIgniter 學生,導入這套 PHP Framework 到業界。 最後會由該學校的 James Parry 擔任 CodeIgniter Project Leader,並且由每年訓練優秀的學生加入此 Project 並且持續貢獻原始碼。看到這裡應該很興奮,因為對於 CodeIgniter 3.0 看起來應該不久之後就可以問世了。新的 Repo 網址也變成

啟動 Percona XtraDB Cluster 注意事項小惡魔AppleBOY

在 Percona XtraDB Cluster 推出 5.5.28 以前,最簡單的啟動方式就是打開 my.cnf 設定 wsrep_urls 在 [mysqld_safe] section 內。假設我們有三台 Node 分別為底下 IP: node1 = 192.168.1.100 node2 = 192.168.1.101 node3 = 192.168.1.102

MySQL 預設儲存引擎: InnoDB 介紹小惡魔AppleBOY

MySQL 是一套眾所皆知的 Database System,今天來簡介 InnoDB 儲存引擎,在 MySQL 5.5.5 之前預設的儲存引擎是 MyISAM,但是為什麼在 5.5 之後官方要將預設儲存引擎換成 InnoDB 呢?大家都知道 InnoDB 用來交易管理非常方便,因為 InnoDB 透過 row lock,相對於 MyISAM 透過 table lock 來的有效率,也避免大量寫入的時候,造成無法讀取資料,這就是 row lock 的優勢,當然用 InnoDB 最主要的原因還有 Full-text search indexes 功能,但是別擔心 MySQL 5.6.4 之後(含此版本) InnoDB 開始支援 Full-text search 功能,另外在使用 MyISAM 時候,如果資料突然出問題,還必須使用 MySQL Binary Log 來恢復資料,如果用 InnoDB 這就沒關係了。大家還在用 MyISAM 嘛?開始升級伺服器,一起體驗 InnoDB 的功能,如果已經上線很久的網站,作者不建議轉換,因為可能會遇到很多雷。

[CSS] IE 6, 7, 8 FireFox hack 支援透明背景圖 background or img javascript小惡魔AppleBOY

先前在國外部落格發現一篇非常好用的教學:Quick Tip: How to Target IE6, IE7, and IE8 Uniquely with 4 Characters,裡面有提供一部教學影片,非常好用,也很實在,底下可以先看影片,看完大概就可以針對 IE, FireFox, Chrome 進行 CSS Hack。 目前網頁製作,要符合多瀏覽器跨平台(IE, Safari, Chrome, FireFox…等),就必須動到 CSS Hack,雖然 Google 已經宣稱不支援 IE6,但是很多單位,很多學校跟客戶都是使用 IE6 瀏覽器,不只國內這樣,國外大廠也都希望支援 IE 系列,包含 IE6, IE7, IE8,這時候就必須知道如何分別針對各種不同 IE 做設定,底下就來看看實做例子。

心灵鸡汤

小故事、钢玻璃杯的故事

  一个农民,初中只读了两年,家里就没钱继续供他上学了。他辍学回家,帮父亲耕种三亩薄田。在他19岁时,父亲去世了,家庭的重担全部压在了他的肩上。他要照顾身体不好的母亲,还有一位瘫痪在床的祖母。

  八十年代,农田承包到户。他把一块水洼挖成池塘,想养鱼。但乡里的干部告诉他,水田不能养鱼,只能种庄稼,他只好有把水塘填平。这件事成了一个笑话,在别人的眼里,他是一个想发财但有非常愚蠢的人。

  听说养鸡能赚钱,他向亲戚借了500元钱,养起了鸡。但是一场洪水后,鸡得了鸡瘟,几天内全部死光。500元对别人来说可能不算什么,对一个只靠三亩薄田生活的家庭而言,不啻天文数字。他的母亲手不了这个刺激,竟然忧郁而死。

  他后来酿过酒,捕过鱼,甚至还在石矿的悬崖上帮人打过炮眼……可都没有赚到钱。

  35岁的时候,他还没有娶到媳妇。即使是离异的有孩子的女人也看不上他。因为他只有一间土屋,随时有可能在一场大雨后倒塌。娶不上老婆的男人,在农村是没有人看得起的。

  但他还想搏一搏,就四处借钱买一辆受扶拖拉机。不料,上路不到半个月,这辆拖拉机就载着他冲入一条河里。他断了一条腿,成了瘸子。而那拖拉机,被人捞起来,已经支离破碎,他只能拆开它,当作废铁卖。

  几乎所有的人都说他这辈子完了。

  但是后来他却成了我所在的这个城市里的一家公司的老总,手中有两亿元的资产。现在,许多人都知道他苦难的过去和富有传奇色彩的创业经历。许多媒体采访过他,许多报告文学描述过他。但我只记得这样一个情节--

  记者问他:"在苦难的日子里,你凭什么一次又一次毫不退缩?"

  他坐在宽大豪华的老板台后面,喝完了手里的一杯水。然后,他把玻璃杯子握在手里,反问记者:"如果我松手,这只杯子会怎样?"

  记者说:"摔在地上,碎了。"

  "那我们试试看。"他说。

  他手一松,杯子掉到地上发出清脆的声音,但并没有破碎,而是完好无损。他说:"即使有10个人在场,他们都会认为这只杯子必碎无疑。但是,这只杯子不是普通的玻璃杯,而是用玻璃钢制作的。"

  于是,我记住了这段经典绝妙的对话。这样的人,即使只有一口气,他也会努力去拉住成功的手,除非上苍剥夺了他的生命……

列表展示

主站展示位

有效率的用 jsonnet 撰寫 Drone CI/CD 設定檔小惡魔AppleBOY

Drone 在 1.0 版本推出了用 jsonnet 來撰寫 YAML 設定檔,方便開發者可以維護多個專案設定。不知道大家有無遇過在啟動新的專案後,需要從舊的專案複製設定到新專案,或者是在 .drone.yml 內有非常多重複性的設定,假設 Go 語言的開源專案需要將執行檔包成 ARM64 及 AMD64 的映像檔,並且上傳到 Docker Hub,底下是 AMD64 的設定檔範例。剛好在 Udemy 課程內有學員詢問到相關問題。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 --- kind: pipeline name: linux-arm64 platform: os: linux arch: arm64 steps: - name: build-push pull: always image: golang:1.11 commands: - "go build -v -ldflags \"-X main.build=${DRONE_BUILD_NUMBER}\" -a -o release/linux/arm64/drone-discord" environment: CGO_ENABLED: 0 GO111MODULE: on when: event: - push - pull_request - name: build-tag pull: always image: golang:1.11 commands: - "go build -v -ldflags \"-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}\" -a -o release/linux/arm64/drone-discord" environment: CGO_ENABLED: 0 GO111MODULE: on when: event: - tag - name: executable pull: always image: golang:1.11 commands: - ./release/linux/arm64/drone-discord --help - name: dryrun pull: always image: plugins/docker:linux-arm64 settings: dockerfile: docker/Dockerfile.linux.arm64 dry_run: true password: from_secret: docker_password repo: appleboy/drone-discord tags: linux-arm64 username: from_secret: docker_username when: event: - pull_request - name: publish pull: always image: plugins/docker:linux-arm64 settings: auto_tag: true auto_tag_suffix: linux-arm64 dockerfile: docker/Dockerfile.linux.arm64 password: from_secret: docker_password repo: appleboy/drone-discord username: from_secret: docker_username when: event: - push - tag trigger: branch: - master

[jQuery] 日曆時間外掛 timepicker CSS/Offset 問題 | Plugins小惡魔AppleBOY

最近把之前弄的 jQuery 日期外掛拿出來看看,筆記過兩篇:[jQuery筆記] 時間日期外掛:timepicker | jQuery Plugins 跟 [jQuery筆記] 好用的日期函式 datepicker,目前在寫活動的開始時間跟結束時間會用到這兩個外掛,網路上有找到整合日期跟時間的程式,不過效果都不是我很喜歡,因為在時間方面想要設定可以分隔5分鐘,或者是10分鐘間隔,有沒有網友可以提供更好的 jQuery 外掛,可以將日曆跟時間整合在一起,用單一 input 欄位就可以控制,也可以設定間隔時間,目前是搭配這兩個外掛同時使用,也可以達到同樣效果。 timepicker 作者網站,愈到了一個問題,只要網頁裡面有用到 jQuery Show 跟 hide 都會讓 timepicker 程式判斷 CSS/offset 發生錯誤,導致功能無法顯示在正確的地方,會跑到網頁其他位置,解決方法就是當滑鼠 click input 欄位時,再去呼叫取得目前 offset 的位置。 var elmOffset = $(elm).offset(); $tpDiv.appendTo('body').css({'top':elmOffset.top + 'px', 'left':elmOffset.left+ 'px'}).hide(); 這樣就可以正確顯示在 input 下方,連這個都可以遇到地雷 XD

CodeIgniter 3.0 Release 終於釋出啦小惡魔AppleBOY

從 2.2.x 版本到現在的 3.0 Release,終於等到釋出大家所期待的 3.0,此版本跟 2.2.x 版本差距極大,修正很多 bugs 重構很多程式碼,官網列出底下重大修正,要嘗鮮的請直接下載吧 CodeIgniter 使用 MIT 版權宣告 重構各種 Database Driver library 支援 PDO 所有函數 重新撰寫 Session Library,支援 Native Session 重新撰寫 Encryption library 已加強單元測試部分,以及改善程式碼覆蓋率 官方建議使用 PHP 5.4 或更新版本,但是官方仍繼續支援 PHP 5.2.4 詳細資料,可以參考官方的 ChangeLog,如果要升級 CodeIgniter 2 到 3,請詳細參考升級文件。 PS:台灣官網部分近期內會修正

高雄回南投 國光之旅小惡魔AppleBOY

哈哈~ 我已經回到南投了~ 不過高雄到南投 我是坐國光客運~ 其實這也是最便宜的,因為每趟只需要250元,還不錯啦,我在當兵幾乎都是坐國光客運,畢竟他也很快,在高速公路也很敢衝,時間也不會差太多,哈

在 Go 語言用 singleflight 解決快取擊穿 (Cache Hotspot Invalid)小惡魔AppleBOY

上圖是在實作 Web 服務時常用的架構,會在服務跟資料庫之間加上快取,以減少資料庫的負載。然而在實作服務串接時,常常會遇到快取三大問題:雪崩、擊穿、穿透,其中 Cache Hotspot Invalid (快取擊穿) 是一個非常常見的問題,當快取中的資料過期或消失時,大量的請求會同時打到後端資料庫,這會導致資料庫的負載過大,甚至會導致資料庫掛掉,如下圖某篇文章的 cache key 過期。這篇文章將會介紹如何使用 Go 語言內建的 singleflight 來解決快取擊穿的問題,這是 sync 套件中的一個功能,可以避免重複的請求同時打到後端資料庫。

JavaScript in 2015小惡魔AppleBOY

在這幾年的趨勢看來,JavaScript 已經環繞在各領域了,不管在 Web 前端或後端,上層或下層,都充滿了 JavaScript,其實都是托 Node.js 的福,網路上看到這篇 JavaScript in 2015,裡面講到 JavaScript 所有的工具,不管前端到後端,每一年都有新的工具跟新的 Framework,從以前寫 Backbone 到 Angular.js 到現在 React.js 改變了整個 JavaScript View 的生態,工具流程整合從 Grunt.js 到 Gulp.js 的出現,整個生態又轉換了,大家陸續將工具全都轉到 Gulp,最後又出來一套 Webpack,Webpack 出現基本上不會影響 gulp 發展,因為 Webpack 還是有很多限制,在前端或後端在上 Production 前的一些流程像是 copy 檔案等,這些是 webpack 無法整合的,看到這些工具一一出現,也不知道明年或現在會不會又跑出一套新的玩具,讓整個 JavaScript 生態整個改變。寫上層的同時,看到同事在寫底層,同事就會跑過來拍拍我肩膀說:『好險我是搞 Kernel,搞上層就要跟你們一樣天天追新技術,永遠沒有停止的一天』。看一下全世界 Job Trends

用五分鐘安裝好 Drone 搭配 GitHub 自動化環境小惡魔AppleBOY

之前寫過一篇『用 10 分鐘安裝好 Drone 搭配 GitLab』。團隊內還沒導入自動化 CI/CD 測試部署環境的朋友們,可以來嘗試看看用 Go 語言打造的 Drone CI/CD 開源專案,不用五分鐘的時間就可以在您的電腦上安裝好 CI/CD 的流程,真的是簡單到不行,只要一個 docker-compose 檔案就可以完成架設了。

關於 PHP FIG Group 所制定的 PSR-0, PSR-1, PSR-2小惡魔AppleBOY

上禮拜寫了一篇 寫出好維護的 PHP 程式碼,看到 gslin 大神回應了一篇 關於可維護的 PHP 專案:PHP-FIG 的 PSR-0、PSR-1、PSR-2,其實我已經關注 PHP FIG 有一陣子了,FIG 所定義的三份文件 PSR-0 (Auto loading Standard), PSR-1 (Basic Coding Standard), PSR-2 (Coding Style Standard) 寫的非常清楚,目的就是讓 PHP Open Source 專案有共同的 Coding Standard,方便大家共同開發。所以上禮拜提到的投影片內容有大部份參考了這份文件,裏面的內容比較不同的地方就差於 Control Structures 部份,舉個簡單例子: 寫 if 條件式,網路上只有兩種寫法 <?php if ($a == $b) { …… }[/code] 另外一種寫法 [code lang=“php”]<?php if ($a == $b) { …… }[/code]

[C/C++] 判斷字串是否為數字小惡魔AppleBOY

常常在寫 C 語言,有時候想判斷輸入的是否為數字,如果不是的話,要重新輸入,所以寫一下怎麼判斷的,ptt提供了下面很多函式 isalnum ctype.h 測試某一整數值是否為’A’-‘Z’,’a’-‘z’,’0′-‘9’等文數字之一。 isalpha ctype.h 測試某一整數值是否為’A’-‘Z’,’a’-‘z’,等字母之一。 isascii ctype.h 如果ch的值判於0-127,則傳回非零整數(0x00-0x7F)。 iscntrl ctype.h 如果ch是一刪除字元或一般控制字元,則傳回非零整數(0x7F或0x00-0x1F)。 isdigit ctype.h 如果ch是一數字,則傳回非零整數。 isgraph ctype.h 如果ch是為可列印字元,則傳回非零整數。 islower ctype.h ch若為小寫字母,則傳回非零整數。 isprint ctype.h ch若為可列印字元,則傳回非零整數。其功能與isgraph相似。 ispunct ctype.h ch若為標點符號,則傳回非零整數。 isspace ctype.h ch若為空白字元或定位字元(Tab),歸位字元(Enter鍵),新列字元,垂直定位字元,換頁字元,則傳回非零整數。 isupper ctype.h ch若為大寫字母,則傳回非零整數。 isxdigit ctype.h ch若為一個十六進位數字,則傳回非零整數 用程式去判斷會更快,因為上面的函式,都是要單一字元去檢查,非常不方便,所以就寫了底下的程式

[軟體教學] zShare 使用 RapidUp 空間分享教學及 FreeGrab 下載教學小惡魔AppleBOY

我想在目前網路上,最流行的分享空間,那就是 hinet 空間跟 zShare 空間了,這兩個非常好用,第一 Hinet 下載速度非常快,然後 zShare 則是非常穩定,不過本篇重點不是 Hinet 而是 zShare 空間,現在要是不會下載 zShare 空間的話,那你就落伍了,因為利用它可以找到很多好東西,而且大家都是利用這個空間做分享檔案。 首先先介紹下載的軟體:FreeGrab 【軟體名稱】FreeGrab v1.2.3.4.4 build Beta2 最新版模組腳本2008/04/10 【官方網址】 【其他聲明】歡迎轉貼 【解壓密碼】:無

[轉貼]程式設計師的格言小惡魔AppleBOY

轉貼自:程式設計師的格言 我覺得有些話真的還蠻中肯的。 程式設計師的格言(盜作不少) 譯自 囉。

在 Ubuntu 底下快速安裝 CakePHP Framework 環境小惡魔AppleBOY

最近因為別的專案用到 CakePHP 這套 PHP Framwork,剛好有這機會來學習 CakePHP,目前已經 Release 到 1.3.8 & 1.2.10 Stable,本篇紀錄如何在 Ubuntu 10.10 安裝 1.3.8 版本,本人不推薦用 2.0, 因為踩到很多雷阿,大家可以到 CakePHP GitHub 找尋自己想要的版本,安裝環境如下: Ubunut 10.10 32 Desktop 版本 Apache/2.2.16 (Ubuntu) PHP 5.3.3-1ubuntu9.5 with Suhosin-Patch (cli) MySQL 5.1.49 1. 先下載 1.3.8 版本 2. 解壓縮到 /var/www 底下 3. 設定 apache virtual host 複製 virtual host 設定檔 cp /etc/apache2/sites-available/default /etc/apache2/sites-available/cakephp 修改設定檔 ServerName cakephp.localhost DocumentRoot /var/www/cakephp/app/webroot Options All AllowOverride All Order allow,deny allow from all 4.

Gitlab CE + Gitlab CI 打造版本控制及自動測試流程小惡魔AppleBOY

Git 版本控制不管在嵌入式或 Web 領域都是很受歡迎的工具,尤其是不會遇到像 svn 搞爛 source tree,然後又要 Google 一堆解法。一般公司入門大概就是買 Github 服務,一個月才五美金,可以提供五個 Private Project,當然你也可以不付錢,而去使用 Bitbucket,好處就是無限的 Private Project,唯一的限制就是開發者數量,只能在五個以內,設定超過五個,就不給 push 或 pull 了,完成版本控制後,接著就是專案的自動測試,在 github 上面,推的就是 travis-ci,這也是全部 open source 專案的喜好,你會發現大部分的專案都會放上 .travis.yml,來告訴 travis 需要的測試步驟,測試步驟完成後,就要將 source code deploy 到 Amazone 或其他雲端服務,到這個服務基本上都要收費了,所以上一篇有介紹 Drone.io 服務,可以自動測試加上 Deploy 到遠端機器,不過缺點就是不支援 Private Project,要的話就是要收費。

[Windows] Appserv 安裝 pear 套件小惡魔AppleBOY

最近要在 Windows 上面安裝 Apache + MySQL + PHP,我選擇利用懶人包安裝方法:Appserv,目前版本為 AppServ 2.5.10 跟 AppServ 2.6.0,如果您要寫 PHP5 的話,就選擇安裝 AppServ 2.5.10,目前支援到 PHP 5.2.6,不過我上次已經看到 PHP 5.2.9 Released 了,如果想要支援 PHP6,那就選擇 AppServ 2.6.0 這個版本,不過我建議新手可以安裝 AppServ 2.5.10,這個版本比較穩定,安裝好之後,也有支援 phpMyAdmin,底下是 2.5.10 支援的套件: * Apache 2.2.8 * PHP 5.2.6 * MySQL 5.0.51b * phpMyAdmin-2.10.3 今天要安裝 pear 的套件在 Windows 上面,不過不用緊張,因為 Appserv 已經把 Pear 的模組包進來裡面了,只要執行 .bat 檔,按照視窗,就可以完成安裝了,自己平常有用 Pear 的 的安裝方法:

[Linux] CentOS 4.4 安裝過程 NAS 2U Server小惡魔AppleBOY

新主機 2u nas server 2顆amd Opteron 2.2ghz 機架高度2u 2*1GB RAM ECC DDR400 SCSI硬碟 ULTRA320磁碟陣列卡支援RAID0,1,5,1000RPM 72GB4顆 網路卡10/100/ 1000 Mbps介面卡2個 主機板型號GA-7A8DRH 連結 上面那台,下面那台也是NAS WIN2003 SERVER 安裝步驟: 利用光碟開機,鍵入linux dd

MongoDB 效能調校紀錄小惡魔AppleBOY

最近剛好在實作 Prometheus + Grafana 的時候,對 MongoDB 做了容器 CPU 使用率 (container_cpu_usage_seconds_total) 的監控,Metrics 寫法如下: 1 2 3 sum( rate(container_cpu_usage_seconds_total{name!~"(^$|^0_.*)"}[1m])) by (name) 從上面的 Metrics 可以拉長時間來看,會發現專案的 MongoDB 非常不穩定,起起伏伏,這時候就需要來看看資料庫到底哪邊慢,以及看看哪個語法造成 CPU 飆高? 接著為了看 MongoDB 的 Log 紀錄,把 Grafana 推出的 Loki,也導入專案系統,將容器所有的 Log 都導向 Loki,底下可以看看 docker-compose 將 Log 輸出到 loki 1 2 3 4 5 6 7 logging: driver: loki options: loki-url: "" loki-retries: "5" loki-batch-size: "400" loki-external-labels: "environment=production,project=mongo" 先看看結論,做法其實很簡單,找出相對應 Slow Query,把相關的欄位加上 Index,就可以解決了

利用 mb_strwidth 取代 mb_strlen 計算 Multi-byte 字數小惡魔AppleBOY

之前寫了一篇如何切割中文標題,裡面計算中文字數,這樣才不會直接切到中文字,但是 PHP 有很多函式可以算出字串有多少字元,我們看看底下例子,使用了 strlen、mb_strlen、mb_strwidth 分別下去測試,看看會把中文字算成幾個字元: <?php echo strlen("測試ABC") . " "; # 輸出 9 echo mb_strlen("測試ABC", 'UTF-8') . " "; # 輸出 5 echo mb_strwidth("測試ABC") . " "; #輸出 7 ?> 看到這結果並不意外,大家可以看到 strlen 把中文字元算成3個字元,mb\_strlen 不管是中文還是英文就都算成單一字元,mb\_strwidth 則是把中文算成 2 字元,mb_strwidth 算出來正是我想要的,如果是想要在 Web 上面切割中文,建議大家用 mb_substr 即可。因為作者本人在弄跟 BBS 相關技術,所以必須江中文字算成2字元,底下節錄 mb_strwidth 如何算字元長度: Chars => Width U+0000 - U+0019 => 0 U+0020 - U+1FFF => 1 U+2000 - U+FF60 => 2 U+FF61 - U+FF9F => 1 U+FFA0 - => 2 PS: 測試環境 PHP 5.

用 15 分鐘快速打造 Laravel 開發環境小惡魔AppleBOY

相信大家對 Laravel 都很熟悉,但是初學者或是新進同事要快速入門 Laravel 最大的門檻就是該如何在短時間內在本機電腦快速安裝好公司專案。這時候使用 Laradock 就是一個最佳時機,透過 Docker 容器話,快速切換 PHP 版本,或者是安裝額外的服務像是 MySQL, MariaDB, phpMyAdmin 或 nginx 等服務,讓本機端不受到自訂安裝套件的困擾,用完隨時關閉,完全不會影響到電腦環境。底下我會介紹使用 Laradock 該注意的事情。完整詳細的操作步驟可以直接看 Youtube 影片。

HAProxy 搭配 CodeIgniter 取使用者真實 IP小惡魔AppleBOY

前端 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

今天考試兩科必修無線區域網路,TCP/IP小惡魔AppleBOY

今天真是很忙得一天,不過我自己認為是還好,早上一起床9點,我就要趕去meeting了,早上是大group meeting,所以蠻早起床的,加上今天要考兩科期中考,整個就是大爆炸,所以最近晚上都在實驗室,哈哈,早上好險計畫的教授沒來,所以我們meeting的時候沒有被電,不然就慘了,下午有一科是老闆的無線區域網路課程要考試,雖然是 open book 可是我好像沒有看,因為早上要meeting要準備阿,哈哈,下午一點考一科TCP/IP,因為幾乎都是考考古題,所以我寫10分鐘就交卷了,助教一整個傻眼,同學都嚇到了,回去lab,大家都說你考完試了喔,囧,我說對阿,大家被我驚奇的交卷速度嚇到,不過也還好吧,都是考考古題,會寫都寫好了,不會寫就空白了,再來呢,考我們老闆的科目,我一整個不會寫,然後我幾乎教空白卷吧,哈哈我看我又要拼期末project了。 有時後,我自己在想,我真的適合念研究所嗎?這裡的課程值得我學習嗎?我到底是為了什麼讀研究所?我成績這麼差,可以畢業嗎?在這門客裡面,雖然我成績很差,可是我覺得我學習到很多實做的東西,我理論真的很差,差到不行,隨便一個人都可以贏我,我寫考卷不是0就是1,也就是,答案只有會寫,跟不會寫,沒有在亂掰的,哈哈。

博客寄语:

    博主很懒什么都没留下!

实时播报:

博客号-学习成长

相信每一分耕耘都有每一分收获,致力帮助博客主所创作的博客能更快的被收录! 如果有其它需求,可联系下方邮箱。