Nginx代理緩存加速服務器
提供與Squid類似的緩存,把URL以及相關信息當成key,用MD5編碼哈希後,把數據文件保存在硬盤上,並且只能為指定的URL或者狀態碼設置過期時間,並不支持類似 squid的purge命令來手動清除指定緩存頁面,但是可以通過第三方的ngx_cache_purge來清除指定的URL緩存
Nginx的緩存加速功能是由proxy_cache(用於反向代理和靜態緩存)和fastcgi_cache(PHP動態緩存)兩個功能模塊完成
1.proxy_cache原理
2.Nginx緩存特點
緩存穩定,運行速度與Squid相差無幾(因為都使用硬盤緩存)
對多核CPU的利用率比其他的開源軟件好
3.Nginx緩存、Varnish、Squid對比
Squid:應用較早,支持傳統、透明、反向等功能的一款應用軟件,設置較復雜,一般配合CDN
Varnish:新興軟件,設計簡單,使用內存緩存數據(快)
Nginx緩存:需通過調用模塊實現緩存功能,基於硬盤緩存數據
案例:Nginx緩存加速
1、環境準備(nginx)
1)配置網卡IP vim /etc/sysconfig/network-scripts/ifcfg-eth0
2)關閉防火墻並設置為開機自動禁用
/etc/init.d/iptables stop && chkconfig --level 35 iptables off
3)臨時允許所有selinux操作 setenforce 0
2、安裝nginx
1)安裝依賴包 yum -y install pcre pcre-devel
2)解壓nginx模塊(支持nginx緩存功能)ngx_cache_purge-2.0.tar.gz到/usr/src/目錄下
3)解壓nginx到/usr/src/目錄 tar zxvf nginx-1.6.0.tar.gz -C /usr/src/
4)新建nginx運行用戶 useradd -M -s /sbin/nologin nginx
5)進入nginx解壓目錄並編譯安裝nginx
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
--add-module=/usr/src/ngx_cache_purge-2.0/
選項註釋:
--prefix=/usr/local/nginx:指定Nginx安裝目錄為/usr/local/nginx
--user=nginx:指定Nginx運行用戶為nginx
--group=nginx:指定Nginx運行組為nginx
--with-http_stub_status_module:開啟狀態統計(一個簡單的頁面,顯示訪問量等)
--with-pcre:啟用pcre庫支持
--add-module=/usr/src/ngx_cache_purge-2.0/:指定需額外加載模塊的目錄位置
6)設置nginx的環境變量
echo "PATH=$PATH:/usr/local/nginx/sbin">>/etc/profile
//立即生效該PATH變量 source /etc/profile
3、配置Nginx
1)編輯nginx配置文件 vim /usr/local/nginx/conf/nginx.conf
2)創建nginx臨時緩存目錄 mkdir /var/cache/nginx
3)檢測Nginx配置文件是否有誤 nginx -t
註:在運行“nginx -t”命令後,當文件確認無誤後,會自動在指定目錄下自動新建臨時、緩存目錄
4)設置系統句柄數,註意單次生效 ulimit -SHn 65535
5)運行nginx服務 nginx
6)監聽80端口 netstat -utpln | grep 80
4、配置Web服務器
1)配置網卡IP vim /etc/sysconfig/network-scripts/ifcfg-eth0
2)關閉防火墻並設置為開機自動禁用
/etc/init.d/iptables stop && chkconfig --level 35 iptables off
3)臨時允許所有selinux操作 setenforce 0
4)安裝apache服務 yum -y install httpd
5)Web服務器編寫測試頁面
echo "This is Web1">/var/www/html/index.html
6)啟動httpd服務並設置為開機自啟
/etc/init.d/httpd start && chkconfig --level 35 httpd on
5、緩存測試
1) IE --> http://192.168.1.10(Nginx服務器IP)
2)遞歸查看目錄下內容,可以看見,剛才訪問的頁面已經緩存下來,並存儲在../c/43/目錄下(Nginx服務器) ls -R /var/cache/nginx/proxy_cache/
3)清除緩存IE --> http://192.168.1.10/purge/(手動清除/頁面緩存)
註:測試訪問時,使用“http://192.168.1.10”訪問,那麽在存儲緩存Key時,是使用URL記錄的,也是是說緩存的是“/”的緩存,那麽清除緩存時應使用“http://192.168.1.10/purge/”或“http://192.168.1.10/purge”,不可使用“http://192.168.1.10/purge/index.html”清除
ls -R /var/cache/nginx/proxy_cache/
//(Nginx服務器)再次驗證查看緩存目錄,之前緩存的頁面文件被清除
Nginx代理緩存加速服務器