1. 程式人生 > >Nginx windows下搭建過程

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
: An attempt was made to access a socket in a way forbidden by its access permissions)

去nginx官網搜了一下原因:

View Code

3個原因:

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中文網