Nginx是lgor Sysoev為俄羅斯訪問量第二的rambler.ru站點設計開發的。從2004年發布至今,憑借開源的力量,已經接近成熟與完善。
Nginx功能豐富,可作為HTTP服務器,也可作為反向代理服務器,郵件服務器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模塊擴展。
常用功能反向代理,代理對象為服務端做代理,使客戶端不需要感知服務端的存在,只需要訪問代理服務器便可獲得想要的結果。實現限流、負載均衡、動靜分離等。負載均衡(Load Balance),是分布式系統中一個非常重要的概念。當訪問的服務具有多個實例節點時,需要根據某種“均衡”的策略決定請求發往哪個節點,這個過程就是所謂的負載均衡。多在高并發情況下需要使用。其原理就是將數據流量分攤到多個服務器執行,減輕每臺服務器的壓力,多臺服務器(集群)共同完成工作任務,從而提高了數據的吞吐量。Nginx是一個輕量級、高性能、穩定性高、并發性好的HTTP和反向代理服務器。web緩存,Nginx可以對不同的文件做不同的緩存處理,配置靈活,并且支持FastCGI_Cache,主要用于對FastCGI的動態程序進行緩存。配合著第三方的ngx_cache_purge,對制定的URL緩存內容可以的進行增刪管理配置示例修改Nginx目錄下nginx.conf配置文件,如下所示:
upstream server {
ip_hash;
server 192.168.200.129:80; #第一臺負載的ip及端口
server 192.168.200.131:80; #第二臺負載的ip及端口
}
server {
listen 80;
server_name localhost Nginx_ip;
location / {
proxy_pass http://server;
proxy_redirect default;
}
}
參數說明upstreamupstream模塊主要負責負載均衡的配置,通過默認的輪詢調度方式來分發請求到后端服務器。
upstream backend {
server backend1.example.com weight=5;
server backend2.example.com fail_timeout=5s slow_start=30s;
server backend3.example.com resolve;
server backend4.example.com service=http resolve;
server backup1.example.com backup;
server backup2.example.com backup;
}
serverserver模塊配置是http模塊中的一個子模塊,用來定義一個虛擬訪問主機。
server {
listen 80;
server_name localhost nginx_ip;
root /nginx/www;
index index.php index.html index.html;
charset utf-8;
access_log logs/access.log;
error_log logs/error.log;
}
locationlocation模塊配置在路由訪問信息配置中關聯到反向代理、負載均衡等等各項功能。
語法規則: location [=|~|~*|^~] /uri/ { … }
多個location優先級:首先匹配 =,其次匹配^~, 其次是按文件中順序的正則匹配,最后是交給 / 通用匹配。當有匹配成功時候,停止匹配,按當前匹配規則處理請求。
location / {
root /nginx/www;
index index.php index.html index.htm;
}
location ^~ /test {
proxy_pass http://backend;
proxy_redirect off;
proxy_set_header Host $host;
}
location /:表示匹配訪問根目錄。
root:用于指定訪問根目錄時,訪問虛擬主機的web目錄。
index:在不指定訪問具體資源時,默認展示的資源文件列表。
如果解決了你的疑惑,請點點關注和評論,謝謝支持。
正春華枝俏,待秋實果茂,與君共勉。