nginx 自動安裝腳本 For cPanel

版本更新啦!現在安裝包支持proxy_cache模塊,支持密碼保護目錄、自定義錯誤頁面等。並且支持wildcard泛域名解析!如果需要更新新版本的nginx前端。先卸載舊版本,再安裝新版本。如果你有任何意見或建議,請與我聯繫。

2010-11-08 updated 此版本暫不支持cpanel 11.26以上的版本.

爲cPanel主機添加nginx服務器軟件,這樣可以讓nginx跑在前端處理靜態文件,並且加裝nginx後的資源消耗比單純跑apache少很多.在找cPanel hack的資料的時候,剛好看到cPanel官方論壇上的一個牛人寫的一個安裝腳本,仔細拜讀了一遍代碼之後,決定在自己的cPanel服務器上安裝.在使用過程中也漸漸發現了一些可以優化.可以增加的特性,主要是nginx上的一些新特性,籍由這些特性,完成了平時似乎不能完成的功能,例如在高併發的機器上實現的服務器端的緩存功能,以及nginx作爲前端的時候使用.htaccess進行目錄保護.這些特性都大大方便了我們的使用.

這裏引用cPanel Forums上的帖子.作者blargman寫了一個專門爲cPanel打造的nginx自動安裝腳本.

Evidently I don't know hot to post in the right forum.

This is an automated nginx installer for cpanel. Integrates so that domain adding/removal is all done automatically.
Some people had asked for cpanel support. In lieu of that, this does pretty much everything I can think of that they would do. It creates a vhost for each domain/addon/subdomain and serves up static content.

Let me know if you have any thoughts/questions or better yet suggestions.
http://blargman.com/public.tar

以上是作者原文,原文地址:點擊這裏.

安裝方法很簡單(建議做好備份),如下:

cd /usr/local/src
wget http://blargman.com/public.tar
tar xf public.tar
cd publicnginx
./nginxinstaller install

安裝好之後,重啓nginx,執行命令:/etc/init.d/nginx restart.Nginx的配置文件均在/etc/nginx當中,各用戶綁定的域名(附加域,子域等)均在/etc/nginx/vhosts

卸載:

進入publicnginx目錄後執行./nginxinstaller uninstall.

-------------------------------------------------------------------------------------------------------------------------------------

我在作者編寫代碼的基礎上增加了緩存功能,以及更多功能上的支持,例如防盜鏈,自定義錯誤頁面等.爲方便大家使用.做出的修改我已經打包成修改版的安裝包.

有朋友問到我的版本和論壇裏原版本的差別是在哪.我的版本解決了哪些問題.這是大部分用戶的問題,這裏集中進行回答.

1.完善的目錄密碼保護功能 -- 這個在原作者的安裝包裏面,並不能做到,原因在於沒有對401狀態碼進行判斷.
2.僞靜態功能的實現 -- 不管你的是以html結尾的還是以"/" 結尾的URL地址,nginx會提前判斷文件系統中是否存在該文件/目錄,如果不存在,那麼就會匹配到後端的apache.後端的apache根據.htaccess文件的設置,進行頁面的展示,前端nginx獲取到內容後便進行壓縮,然後傳遞給訪客瀏覽器中.
3.訪問日誌準確記錄 -- 原作者的安裝包中,是nginx與apache共用同個日誌文件進行記錄.nginx記錄靜態頁面的訪問信息,apache記錄動態頁面訪問信息,理論上可行.但在實際使用中,我發現了這個問題.這個問題一個突破口在於對後綴.html匹配的時候,同時查詢了前端nginx及後端的apache.這樣就造成了日誌的重複.另外一個是一些沒有匹配到的後綴,前端不僅處理了訪客的請求並進行記錄,還會向後端發起請求查詢.但由於大文件不會很快就傳輸完畢,因此即便設置了keepalive也無濟於事.在我的安裝包中,我將後端的用戶配置中非加密端口的日誌功能取消了,完全由前端的nginx進行記錄.
4.日誌切割問題 -- 這個問題來自前面說的第3點修改,如果只是修改了第3點而沒有進行這一步,那麼就會碰到一個問題:當執行用戶訪問日誌切割並轉爲統計頁面展示給用戶看,系統會自動將用戶的日誌刪除,導致這之後的日誌訪問信息丟失直至下次nginx重啓.在對cpanel日誌統計進程的跟蹤後,找出/usr/local/cpanel/bin/safeapacherestart這行.這行的作用是讓日誌切割後的apache可以安全的重新啓動.解決辦法就是一改作者重啓nginx的方式,我將重啓nginx的信息加入apache的重啓命令中,以後只需要對apache進行命令操作就可以了.
5.泛域名解析 -- cpanel支持泛域名解析,而且在作爲主機商而言,泛域名也是一個特色,需要用起來.但是作者的版本以及我之前修改的版本中,並沒有對這塊進行支持,一旦客戶綁定了泛域名,就會使nginx無法啓動,全部用戶的網站受影響.那麼這次的更新就包含了這個功能.
6.基於proxy_cache的緩存系統 -- 這個是我添加的,爲可選功能.

另外需要注意的,網友們提到的一個是重啓nginx後的那一串提示.這個警告信息是提示你主機名存在錯誤,不影響使用.

安裝方法與作者原版一樣.請執行如下安裝!

cd /usr/local/src
wget http://icodex.org/public.tar
tar xf public.tar
cd publicnginx
./nginxinstaller install

注意:如果之前安裝了作者原版本的nginx,請先卸載後再執行安裝.

原文轉自:http://icodex.org/2010/02/nginx%E8%87%AA%E5%8A%A8%E5%AE%89%E8%A3%85%E8%84%9A%E6%9C%AC-for-cpanel/comment-page-1/

發佈了27 篇原創文章 · 獲贊 0 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章