緣起 --轉
其實這兩年為 Nginx 世界做了這么多的事情,一直想通過一系列教程性的文章把我的那些工作成果和所學所知都介紹給更多的朋友。現在終于下決心在新浪博客 http://blog.sina.com.cn/openresty 上面用中文寫點東西,每一篇東西都會有一個小主題,但次序和組織上就不那么講究了,畢竟并不是一本完整的圖書,或許未來我會將之整理出書也不一定。
我現在編寫的教程是按所謂的“系列”來劃分的,比如首先連載的“Nginx 變量漫談”系列。每一個系列基本上都可以粗略對應到未來出的 Nginx 書中的一“章”(當然內部還會重新組織內容并劃分出“節”來)。我面向的讀者是各個水平層次的 Nginx 用戶,同時也包括未使用過 Nginx 的 Apache、Lighttpd 等服務器的老用戶。
我只保證這些教程中的例子至少兼容到 Nginx 0.8.54
,別用更老的版本來找我的錯處,我一概不管,畢竟眼下最新的穩定版已經是 1.0.10
了。
凡在教程里面提到的模塊,都是經過生產環境檢驗過的。即便是標準模塊,如果沒有達到生產標準,或者有重要的 bug,我也不會提及。
我在教程中會大量使用非標準的第三方模塊,如果你怕麻煩,不愿自己一個一個從網上下載和安裝那些個模塊,我推薦你下載和安裝我維護的 ngx_openresty
這個軟件包:
教程里提及的模塊,包括足夠新的 Nginx 穩定版核心,都包含在了這個軟件包中。
我在這些教程中遵循的一個原則是,盡量通過短小精悍的實例來佐證我陳述的原理和觀點。我希望幫助讀者養成不隨便聽信別人現成的觀點和陳述,而通過自己運行實例來驗證的好習慣。這種風格或許也和我在 QA 方面的背景有關。事實上我在寫作過程中也經常按我設計的小例子的實際運行結果,不斷地對我的理解以及教程的內容進行修正。
對于有問題的代碼示例,我們會有意在排版上讓它們和其他合法示例所有區別,即在問題示例的每一行代碼前添加問號字符,即(?
),一個例子是:
? server {
? listen 8080;
?
? location /bad {
? echo $foo;
? }
? }
未經我的同意,請不要隨便轉載或者以其他方式使用這些教程。因為其中的每一句話,除了特別引用的“名句”,都是我自己的,我保留所有的權利。我不希望讀者轉載的另一大原因在于:轉載后的拷貝版本是死的,我就不能再同步更新了。而我經常會按照讀者的反饋,對已發表的老文章進行了大面積的修訂。
我歡迎讀者多提寶貴意見,特別是建設性的批評意見。類似“太爛了!”這樣無聊中傷的意見我看還是算了。
所有這些文章的源都已經放在 GitHub 網站上進行版本控制了:
http://github.com/agentzh/nginx-tutorials/
源文件都在此項目的 zh-cn/
目錄下。我使用了一種自己設計的 Wiki
和 POD
標記語言的混合物來撰寫這些文章,就是那些 .tut
文件。歡迎建立分支和提供補丁。
本教程適用于 Kindle、iPad/iPhone、Sony 等電子閱讀器的 .mobi
、.epub
以及 .pdf
等格式的電子書文件可以從下面這個位置下載:
章亦春 (agentzh) 于福州家中
2011 年 11 月 30 日
RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成