nginx轉換手記

首先說一下爲什麼要把apache換成nginx。
在目前的web服務器市場,apache的市場佔有率應該在70%左右,可見其應用之廣泛。apache有不錯的性能及強大的模塊配置功能,安全性也不 錯。後來發現,很多訪問量比較大的網站,都換成了nginx,一個由俄羅斯人開發的開源項目,就下載下爲研究了一下,發現其配置上比apache更加簡 潔,且可控制項也非常豐富,就決定採用nginx了。至於效率是否會比apache高10倍,本人沒有測試過,沒有發言權。
首先安裝,sudo apt-get install ngnix,版本是0.6.02,應該是一個比較穩定的版本。
其次,安裝與php5-cgispawn-fcgi,php5服務器上本來就有,所以不必再安裝一次。(前段時候nginx報重大安全漏洞,其實並不是ngnix的漏洞,而是spawn-fcgi上的問題,怎麼修改以避免該漏同,大家google一下哈)。
經過上面的操作,就完成了安裝,ngnix已經加入到自動啓動配置中,接下來,我們要做的,就是修改配置文件,建立虛擬主機。
ubuntu集成nginx與apache後的目錄結構非常的相似,在/etc/nginx目錄下就是所有需要的東西了。nginx.conf是主配置文 件,一般不用改動,sites-available目錄下,是站點虛擬主機配置文件,sites-enabled下是生效的配置(直接建立起sites- available目錄下文件的軟鏈接,軟鏈接是我發現的linux下最強大、最有效的功能,如果換爲win 平臺,我不曉得該怎麼做,呵呵)。
下面是一個主機配置示例:
server {
listen   80;
server_name  yourdomain.com;
root /var/www/yousite_doc_root;

access_log  /var/log/nginx/localhost.access.log;

location / {
root /var/www/yousite_doc_root;
index index.html;
}
location ~ \.(jsp|htm|do)$ {
proxy_pass http://youdomain.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_read_timeout 480;
proxy_send_timeout 480;
}
location ~* \.(mp3|wmv|png|jpg|gif|swf)$ {
valid_referers  none  blocked server_names *.yourdomain.com;
if ($invalid_referer) {
rewrite ^/ http://image.yourdomain.com/dl.jpg;
#return 403;
}
}
}
在上面的配置中,要注意的是:
1、location / {}中,請配置上root,雖然上面已經配置過一次。如果不配置,資源訪盜鏈將無法實現,網上的很多配置都是誤人子弟的,請大家一定要小心。
2、 proxy_pass http://youdomain.com 是到jsp和*.do的,轉到一個後臺tomcat集羣配置中,效率可能會比apache的ajp13低一些,我會在另一篇文章中介紹。
3、proxy_read_timeout 480;與 proxy_send_timeout 480配置,有助於解決業務執行過程較長的長請求。
4、 proxy_set_header X-Real-IP $remote_addr用於在程序中獲得客戶真實的ip,當然切換成nginx後,你程序中取ip的代碼也得改。


php站點的一個配置實例:
server {
listen 80;
server_name yourdomain.com;
access_log  /var/log/nginx/localhost.access.log;

location / {
root   /var/www/bbs_doc_root/subdir;
index  index.html index.php;
}

location ~ \.php$ {
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  /var/www/bbs_yousitedomain/ucenter$fastcgi_script_name;
include fastcgi_params;
}
}
最後,還需要修改nginx配置文件,將nginx版本號隱藏起來,以訪止自動掃描軟件發現特定版本的安全露洞。
如有問題,請與我討論。

本文首發http://www.fudu365.com【英語聽力復讀網】,轉載請保留。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章