nginx 入門之理論基礎(-)

紫翼龍王夜發表於2015-02-13


NGINX

多節點 需要多quorum以及stonith,叢集檔案系統雙主模型的DRBD GFS檔案系統

《從零構建叢集》

 

nginx:2002年Igor Sysoev 開發,2004年成為一個開源專案,有35.5M使用者來使用,國內例如QQ 163 126,特點:具有出色的效能、可靠性、外掛化結構、簡單的配置、低資源佔用率。

 

使用epoll的I/O模型,基於事件驅動使用非同步的方式執行,響應速度快記憶體佔用低,使用邊緣觸發、水平觸發來提高響應率,wordpress、sourceforge都使用nginx。

 

功能:

它可以作為一個WEB伺服器來使用;

也可以作為WEB的反向代理伺服器,web reverse proxy

它同樣可以作為SMTP反向代理伺服器(較少使用)

LNMP:與PHP搭配向外提供動態網頁服務,且必須基於FastCGI的結構來提供服務。

URL重寫:

epoll模型,功能強勁,


Ps:德國的lighttpd使用lua指令碼,效能與nginx不相上下;

       GNU發音[genu:] Gnome[genom]




代理伺服器:

 工作在應用層,將客戶端的請求進行轉發,但在使用者始終認為proxy為請求資源的網站,在客戶端看來可以是一個集網站於一身的伺服器;對已proxy來說,接到客戶端的請求,再由自己對使用者請求進行分析後,在想目的資源發起請求,獲取資源後在有自己傳送非客戶端。

 proxy具有防火牆功能,能夠分析資料包內容,來遮蔽定義的內容;

 proxy的通訊加速功能:接收到使用者請求先查詢本地快取,命中直接反饋資訊,未命中則發起服務,從而大大節約頻寬資源。

跟NAT的區別:

nat在網路層,將使用者請求資料包進行地址轉換後,發給目的地址,對客戶端來說代理伺服器是透明的。

反向代理web reverse proxy

向外部宣稱自己提供內網的所有服務,對外網來說將各種服務請求全部發給proxy,再由proxy進行想內網轉發;此時,proxy也是先查詢本地快取,命中直接反饋,未命中再向後端伺服器發出請求,這就是“反向代理”;注意一般來說只快取靜態內容(新聞、圖片等),動態內容一般不進行快取(賬號密碼、論壇發帖等)。

 

配置檔案:

events{}

#併發事件數

worker_processes

#cpu核的個數

http{

sendfile on;

#核心空間的系統呼叫,直接將使用者呼叫的檔案從核心直接傳送到網路卡;僅對小於1K的檔案才有效,否則必須要到使用者空間。

keepalive_timeout 65;

#持久連線的超時時間

}

 

 

server{

#每一個虛擬主機就需要一個server段

}

location / {

root html;#根是html(如不註明絕對路徑,則相對於安裝路徑來說)

#或改成/web帶有絕對路徑

index index.html index.htm;

}

#定義特定路徑下的網頁檔案具有的訪問特徵(訪問許可權、訪問屬性)

location後可跟如下字元

/:直接根目錄,只要在目錄下都匹配

=:精確匹配,必須訪問目錄本身

~:

~*:不區分大小寫的正規表示式匹配

^~:禁用搜尋路徑時的正規表示式功能

注意:非正規表示式的優先順序要高;

       子目錄的優先順序較高,如果沒有定義子目錄就進行全域性搜尋

 

location / { #相對路徑

root /web;#根目錄

index index.html index.htm;

}

#/web/

location /bbs { #相對路徑

root /bbs; #根目錄

index bbs.index;

allow 192.168.0.0/24; #訪問控制

deny all;

}

#/bbs/bbs

 

虛擬主機定義

注意 :需要先登出中心主機的server項

server {

    listen          80;

    server_name    

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

 

    index index.html;

    root  /var/www/a;

  }

 

  server {

    listen          80;

    server_name    

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

 

    index index.html;

    root  /var/www/b;

  }

 #以域名作為區分

定義預設虛擬主機

A Default Catchall Virtual Host

 

server {

    listen          80 default;

    server_name     _;

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

 

    server_name_in_redirect  off;

 

    index index.html;

    root  /var/www/default;

  }

#定義在http服務中

#在使用ip登陸時,預設開啟的網頁

 

簡單的負載均衡(反向代理)

http {

  upstream myproject {

    server 127.0.0.1:8000 weight=3;

    server 127.0.0.1:8001;

  }#轉發和權重

 

  server {

    listen 80;

    server_name

    location / {

      proxy_pass

    }#轉發到這些定義到

  }

}





來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30129545/viewspace-1435063/,如需轉載,請註明出處,否則將追究法律責任。

相關文章