初識nginx反向代理和緩存機制(簡單實現)
阿新 • • 發佈:2017-11-06
修改 請求轉發 b- nginx bin text pan types con 實現的需求圖:
環境:
nginx緩存和反向代理服務器:192.168.0.224
實際存儲數據機器:192.168.0.37
一、實現反向代理
1、安裝nginx,兩臺服務器都需要安裝
1)安裝依賴包
keys_zone=cache_one:500m : 設置緩存名字 inactive=1d : 在指定時間內沒人訪問,就刪除緩存 max_size=30g : 最大緩存空間 測試: 當你第一次訪問web1目錄時,得到的結果是,如下,說明它是從真實的數據服務器處獲取的數據 可以進入到緩存目錄看一下它的目錄結構: 查看一下具體的內容: 然後把真實數據服務器的nginx給停掉,再一次訪問,還是可以得到 然後把代理服務器的緩存數據給刪除,再一次訪問,得到結果: 這就說明了第二次訪問的是緩存數據的內容
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.gz3)解壓編譯
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/nginx4、測試 這是代理服務器自身的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反向代理和緩存機制(簡單實現)