課程概覽
Nginx是一個開源的HTTP和反向代理服務(wù)器,同時也可以用于郵件代理服務(wù)器毡庆、負(fù)載均衡以及HTTP緩存坑赡。Nginx項目在一開始時,就定位于高并發(fā)么抗、高性能以及低內(nèi)存消耗的目標(biāo)垮衷。它可以運(yùn)行在Linux,,各類BSD系統(tǒng)乖坠, Mac OS X搀突,Solaris,AIX熊泵,HP-UX 以及各類 *nix 操作系統(tǒng)仰迁。此外,它也提供了一個Windows版本顽分,但仍處于原型階段(參考鏈接)徐许。根據(jù)Netcraft(全球知名的互聯(lián)網(wǎng)服務(wù)咨詢公司)的統(tǒng)計,截止到2014年三月卒蘸,全球最大的網(wǎng)站中雌隅,大概有17.65%都使用了Nginx作為HTTP服務(wù)器或者代理服務(wù)器翻默。
本課程會向你揭示Nginx的魔力。你將會學(xué)習(xí)到如何在各種軟件平臺上安裝和配置Nginx恰起,以及如何與Apache進(jìn)行集成修械。
除此之外,你還會接觸到像負(fù)載均衡检盼、SSL配置以及Websockets代理等高級概念肯污。
關(guān)于作者
Gabriel Canepa是一名來自阿根廷圣路易省梅塞德斯鎮(zhèn)的Linux基金會認(rèn)證系統(tǒng)管理員 (LFCS-1500-0576-0100) 及web開發(fā)者。他目前在一家全球領(lǐng)先的消費(fèi)品公司工作吨枉,通過在工作中大量使用自由及開源(FOSS蹦渣,F(xiàn)ree and open-source software)工具,充分享受著它們所帶來的工作效率提升貌亭。在工作與寫作之余柬唯,他喜歡陪兩個女兒在一起,與妻子一起給她們講睡前故事圃庭,享受幸福的家庭生活锄奢。
Gabriel擅長于Linux系統(tǒng)管理、shell腳本冤议、數(shù)據(jù)庫管理(SQL Server, MySQL, Oracle 11g)斟薇、面向?qū)ο蠹斑^程變成(Python 和 PHP)师坎、桌面應(yīng)用程序開發(fā)(C#, Visual Basic, Excel with VBA)和web開發(fā)(jQuery, HTML5, CSS3, PHP)等領(lǐng)域恕酸。
他還曾作為一級TSR(技術(shù)支持代表),現(xiàn)場支持過一家大型跨國公司的WMS系統(tǒng)(運(yùn)行Red Hat Enterprise Linux和Oracle 11g)的啟動和日常操作胯陋。
課程介紹
在Linux上安裝Nginx
在第一節(jié)課中蕊温,你將會了解如何在不同平臺和環(huán)境中安裝及配置Nginx。我為多個主流Linux發(fā)行版本都提供了安裝指南遏乔,例如Debian Wheezy, Ubuntu 12.04 LTS 和 CentOS 6.4义矛。此外,我還會解釋如何激活各個模塊盟萨,例如標(biāo)準(zhǔn)的HTTP凉翻、可選的HTTP以及郵件模塊。最后捻激,你將會了解如何將Nginx安裝為一個系統(tǒng)服務(wù)制轰,以便隨操作系統(tǒng)一起啟停。
Nginx配置指南(Ubuntu 12.04 LTS)
在本課中胞谭,你將會了解到Nginx配置的內(nèi)部機(jī)制垃杖。你會熟悉Ngnix配置文件的語法和指令半火,以及如何組織和包含其他配置文件碰纬。隨后贴硫,你會了解常用的基本模塊,以及如何通過它們來定義Nginx的基礎(chǔ)參數(shù)和配置且叁。這些模塊都是在Nginx編譯時被自動構(gòu)建到Nginx中的。最后穆碎,你會了解如何配置一個HTTP服務(wù)器和一個郵件服務(wù)器代理槽惫,以及虛擬主機(jī)。
Nginx和Apache(Ubuntu 12.04 LTS)
在本課中侧巨,我們將學(xué)習(xí)如何將Nginx于Apache web服務(wù)器集成起來舅锄。Nginx可以作為一個反向代理。在一個網(wǎng)絡(luò)結(jié)構(gòu)中司忱,一個反向代理就是放置在客戶端和服務(wù)端之間的一個設(shè)備或服務(wù)皇忿。我們將會了解如何對兩個服務(wù)器進(jìn)行正確的配置,以及如何進(jìn)行細(xì)粒度的性能調(diào)優(yōu)坦仍。
Nginx負(fù)載均衡(Ubuntu 12.04 LTS)
在本課中鳍烁,我們將會了解如何通過Nginx來實現(xiàn)負(fù)載均衡。負(fù)載均衡是一種網(wǎng)絡(luò)手段繁扎,將流量負(fù)載分發(fā)到多個計算資源上幔荒,例如多臺服務(wù)器、服務(wù)器集群梳玫、網(wǎng)絡(luò)鏈接爹梁、多個CPU,或者其他的硬件設(shè)備提澎。通過Nginx姚垃,我們可以搭建一個7層的負(fù)載均衡(可以根據(jù)應(yīng)用層協(xié)議(例如HTTP和FTP)中的數(shù)據(jù)來分發(fā)請求)。
Nginx SSL配置指南(Ubuntu 12.04 LTS)
在本課中盼忌,我們將關(guān)注于Nginx的SSL配置积糯。SSL(Secure Socket Layer)協(xié)議的初衷是為了保證web服務(wù)器和瀏覽器(受保護(hù)頁面)之間的安全傳輸。Nginx服務(wù)器可以支持SSL谦纱。我們將會了解如何創(chuàng)建看成、簽名以及使用所需的證書,以及如何啟用Nginx的SSL功能跨嘉。
Nginx Websockets代理指南(Ubuntu 12.04 LTS)
在本課中川慌,我們將關(guān)注于Nginx的Websockets代理功能。WebSocket是一個在單個TCP連接上提供全雙工通信信道的協(xié)議祠乃,雖然設(shè)計之初是為了在瀏覽器和服務(wù)器之間使用梦重,但它也可以用于任何客戶端或服務(wù)端應(yīng)用程序。Nginx從1.3.13版本起開始支持Websockets跳纳,并且已經(jīng)被作為核心功能之一忍饰。為了更好的了解并測試該功能,我們將創(chuàng)建一個簡單的Node.js應(yīng)用程序寺庄。
Nginx總結(jié)(Ubuntu 12.04 LTS)
在最后一課中艾蓝,我們將回顧之前課程中所介紹的一些Nginx的關(guān)鍵特性力崇。