1. 程式人生 > >初識nginx反向代理和緩存機制(簡單實現)

初識nginx反向代理和緩存機制(簡單實現)

修改 請求轉發 b- nginx bin text pan types con

實現的需求圖: 技術分享 環境: nginx緩存和反向代理服務器:192.168.0.224 實際存儲數據機器:192.168.0.37 一、實現反向代理 1、安裝nginx,兩臺服務器都需要安裝 1)安裝依賴包
 yum -y install gcc make cmake ncurses-devel libxml2-devel libtool-ltdl-devel gcc-c++ autoconf automake bison zlib-devel

2)下載nginx
wget http://nginx.org/download/nginx-1.8.0.tar.gz
3)解壓編譯
tar -zxvf nginx-1.8.0.tar.gz
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx 
make
make install

2、修改配置文件 這裏只實現他的功能,並沒有對配置文件做更多的修改 代理服務器:vim /usr/local/nginx/conf/nginx.conf
worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include      mime.types;
    default_type  application
/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location /{ root /nginxroot; } location = /50x.html { root html; } } location /web1/ { proxy_pass http:
//192.168.0.37/; } }

真實數據服務器:改路徑即可vim /usr/local/nginx/conf/nginx.conf
        location /{
        root  /web1;
        index index.html index.php;
        }

創建對應的文件夾 在192.168.0.224上:
mkdir /nginxroot
echo "I am proxy server" >/nginxroot/index.html 
在192.168.0.37上:
mkdir /web1
echo "I am realy server" >/web1/index.html

3、啟動nginx
/usr/local/nginx/sbin/nginx
4、測試 這是代理服務器自身的nginx 技術分享 假如我要訪問www.lile.com/web1,那麽代理服務器會把這個請求轉發給真實數據機器,然後把數據讀取出來 技術分享 二、緩存機制 在反向代理的基礎上,打開緩存機制,這樣可以加快訪問速度,只是添加幾行配置,能實現緩存這個功能,其他具體的優化,安全之類的還沒有仔細研究,先搭起來理解看怎麽回事再細細研究其他的
worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include      mime.types;
    default_type  application/octet-stream;
    sendfile        on;

    keepalive_timeout  65;

    proxy_cache_path /usr/local/nginx/cache levels=1:2 keys_zone=cache_one:500m inactive=1d max_size=30g;
    
    server {
        listen      80;
        server_name  localhost;

        location /{
        root  /nginxroot;
        }

        location = /50x.html {
            root  html;
        }
        }
              
        location /web1/ {
                   proxy_cache cache_one;
                   proxy_cache_valid 200 304 302 24h;
                   proxy_pass  http://192.168.0.37/;
        }
 }

主要添加了三行: proxy_cache_path /usr/local/nginx/cache levels=1:2 keys_zone=cache_one:500m inactive=1d max_size=30g; proxy_cache cache_one; proxy_cache_valid 200 304 302 24h; proxy_cache_path:表示緩存文件存放的目錄 levels=1:2 : 設置目錄層次
keys_zone=cache_one:500m : 設置緩存名字 inactive=1d : 在指定時間內沒人訪問,就刪除緩存 max_size=30g : 最大緩存空間 測試: 當你第一次訪問web1目錄時,得到的結果是,如下,說明它是從真實的數據服務器處獲取的數據 技術分享 可以進入到緩存目錄看一下它的目錄結構: 技術分享 查看一下具體的內容: 技術分享 然後把真實數據服務器的nginx給停掉,再一次訪問,還是可以得到 技術分享 然後把代理服務器的緩存數據給刪除,再一次訪問,得到結果: 技術分享 這就說明了第二次訪問的是緩存數據的內容

初識nginx反向代理和緩存機制(簡單實現)