Nginx windows下搭建過程
內容列表:
- 簡要介紹
- 下載安裝
- 配置測試
一、簡要介紹
Nginx ("engine x") 是一個高效能的 HTTP 和 反向代理 伺服器,也是一個 IMAP/POP3/SMTP 代理伺服器。 Nginx 是由 Igor Sysoev 為俄羅斯訪問量第二的 Rambler.ru 站點開發的,第一個公開版本0.1.0釋出於2004年10月4日。其將原始碼以類BSD許可證的形式釋出,因它的穩定性、豐富的功能集、示例配置檔案和低系統資源的消耗而聞名。2011年6月1日,nginx 1.0.4釋出。
Nginx作為負載均衡伺服器:Nginx 既可以在內部直接支援 Rails 和 PHP 程式對外進行服務,也可以支援作為 HTTP代理伺服器對外進行服務。Nginx採用C進行編寫,不論是系統資源開銷還是CPU使用效率都比 Perlbal 要好很多。
作為郵件代理伺服器:Nginx 同時也是一個非常優秀的郵件代理伺服器(最早開發這個產品的目的之一也是作為郵件代理伺服器),Last. fm 描述了成功並且美妙的使用經驗。
Nginx 是一個安裝非常的簡單,配置檔案非常簡潔(還能夠支援perl語法),Bugs非常少的伺服器:Nginx 啟動特別容易,並且幾乎可以做到7*24不間斷執行,即使執行數個月也不需要重新啟動。你還能夠不間斷服務的情況下進行軟體版本的升級。
(更多介紹參照百科,更多使用參照GOOGLE,廣而告之)
二、下載安裝
我們使用nginx 1.0.4 for windows版本,下載解壓後放到C:\nginx-1.0.4(官網這樣要求的,不知道放其它盤有沒有問題)
執行cmd.exe到
有錯誤啊,也不知道啟動成功沒有,去看看日誌吧。
logs裡有出現了兩個日誌檔案access.log,error.log, 開啟error.log開到下面提示
2011/06/1615:23:55 [emerg] 7136#4040: bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions) 2011/06/1615:24:14 [emerg] 6336#7052: bind() to 0.0.0.0:80 failed (10013去nginx官網搜了一下原因:
View Code3個原因:
1.防火牆打開了(確實我的WIN7 windows Firewall打開了,但是關了後還是不能啟動nginx)
2.80埠被佔用了(確實有個預設的站點用的80埠,關閉了後再啟動nginx正常了,80後為Nginx預設的配置)
怎麼看出來的正常的,看一下logs下面是不是多了一個nginx.pid檔案,cmd視窗了輸入
C:\nginx-1.0.4>tasklist /fi "imagename eq nginx.exe"
結果如下:
這時說明已經啟成功了,有兩個程序。按照官方的解釋,nginx是守護程序,其中一個是一直處理事件等待中,當有事件被觸發時,就啟動另外一個程序處理相關請求。
訪問成功後可以logs下的access.log看到訪問站點的request資訊
View Code如果沒有成功可以再檢視logs下的error.log原因,以下為其它操作命令
nginx -s stop | quick exit |
nginx -s quit | graceful quit |
nginx -s reload | changing configuration, starting a new worker, quitting an old worker gracefully |
nginx -s reopen | reopening log files |
官網提供了詳細的windows usage 安裝說明,網上大部分寫的都很亂。我第一次參照網上其它人沒成功過-_-|||,發現官網有安裝說明照著操作一遍成功了,所以建議大家以後多看官網說明以及原始碼,可以少走很多彎路。
三、配置測試
第二環節我們使用了預設的nginx.conf 。Nginx的配置檔案都存於目錄conf檔案下,其中nginx.conf是它的主配置檔案。
以下為我加上註釋並配置的新的虛擬server
View Code#號為註釋內容,我們在cmd下執行nginx
啟動成功,出錯的話,可以查詢日誌(日誌路徑是配置檔案指定的,你可以修改存到其它位置)
訪問一下第二個server 配置的localhost:8666地址,結果:
Nginx官網conf的配置沒有提供太多的文件,相學習更多的配置,例如快取,負載均衡等等,可以參照Nginx中文網。