Nginx緩存代理服務(wù)器
一、實(shí)驗(yàn)部署
文章來源:http://www.zghlxwxcb.cn/news/detail-525127.html
二、搭建Nginx緩存代理服務(wù)器
1.nginx反向緩存代理服務(wù)配置
###關(guān)閉和禁止防火墻開機(jī)自啟功能
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config
2.安裝nginx服務(wù)
vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
3.修改/etc/nginx/nginx.conf配置文件,關(guān)閉長連接保持功能
vim /etc/nginx/nginx.conf
###在第27行關(guān)閉nginx服務(wù)的長連接保持功能
keepalive_timeout 0;
4.修改/etc/nginx/nginx.conf配置文件,添加反向代理緩存配置項(xiàng)
vim /etc/nginx/nginx.conf
###在31行左右添加如下內(nèi)容
upstream web_server {
server 192.168.111.40:80;
server 192.168.111.50:80;
}
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
###創(chuàng)建反向緩存代理日志保存文件/data/nginx/cache
mkdir -p /data/nginx/cache
5.修改/etc/nginx/conf.d/default.conf配置文件,添加proxy轉(zhuǎn)發(fā)模塊
vim /etc/nginx/conf.d/default.conf
###在11行添加下面內(nèi)容
proxy_cache my_cache;
proxy_cache_key $request_uri;
proxy_cache_valid 200 5m;
add_header Nginx-Cache-Status $upstream_cache_status;
proxy_pass http://web_server;
6.啟動(dòng)nginx服務(wù)
nginx -t
systemctl restart nginx
systemctl status nginx
netstat -lntp | grep nginx
三、配置nginx做web服務(wù)頁面
###關(guān)閉和禁止防火墻開機(jī)自啟功能
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config
安裝nginx的repo
yum -y install nginx
制作nginx頁面
cd /usr/share/nginx/html
echo '<h1>IP:192.168.111.40,web</h1>' > test.html
###另一服務(wù)端的網(wǎng)頁根目錄
echo '<h1>IP:192.168.111.50,web</h1>' > test.html
關(guān)閉nginx長連接
vim /etc/nginx/nginx.conf
###在第27行關(guān)閉nginx服務(wù)的長連接保持功能
keepalive_timeout 0;
啟動(dòng)nginx服務(wù)
systemctl restart nginx
systemctl enable nginx
systemctl status nginx
netstat -lntp | grep nginx
四、客戶端驗(yàn)證
curl http://192.168.111.30/test.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-525127.html
五、總結(jié)
nginx做緩存服務(wù)器時(shí),同時(shí)可以在location中匹配動(dòng)態(tài)頁面。做動(dòng)靜分離,轉(zhuǎn)發(fā)給后端動(dòng)態(tài)頁面服務(wù)器
http {
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
#####################################################
●path:強(qiáng)制參數(shù),指定緩存文件的存放路徑。
●levels:定義了緩存目錄的層級(jí)。每層可以用1(最多16種選擇,0-f)或2(最多256種選擇,00-ff)表示,中間用 : 分隔。
proxy_cache_path /data/nginx/cache; 代表所有緩存只有一個(gè)目錄,比如/data/nginx/cache/d7b6e5978e3f042f52e875005925e51b
proxy_cache_path /data/nginx/cache levels=1:2; 代表緩存是二層目錄(有16*256=4096個(gè)目錄),比如/data/nginx/cache/b/51/d7b6e5978e3f042f52e875005925e51b
●keys_zone:強(qiáng)制參數(shù),定義共享內(nèi)存區(qū)的名稱和大小,該共享內(nèi)存用于保存緩存項(xiàng)目的元數(shù)據(jù)(所有活動(dòng)的key和緩存數(shù)據(jù)相關(guān)的信息),這樣nginx可以快速判斷一個(gè)request是否命中或者未命中緩存,1m可以存儲(chǔ)8000個(gè)key,10m可以存儲(chǔ)80000個(gè)key。
●inactive:刪除指定時(shí)間內(nèi)未被訪問的緩存文件,默認(rèn)10分鐘。
●max_size:設(shè)置了緩存存儲(chǔ)的上限,如果不指定,最大會(huì)用掉所有磁盤空間。
●use_temp_path:直接把臨時(shí)文件放在緩存目錄中。
#####################################################
upstream cache_server{
server 192.168.80.20:80;
server 192.168.80.30:80;
}
server {
listen 80;
server_name www.kgc.com;
location / {
proxy_cache my_cache; #指定用于頁面緩存的共享內(nèi)存,zone名稱由proxy_cache_path指令定義
proxy_cache_valid 200 5m; #為不同的響應(yīng)狀態(tài)碼設(shè)置不同的緩存時(shí)間,此為緩存狀態(tài)碼為200的請(qǐng)求,緩存時(shí)長為5分鐘
proxy_cache_key $request_uri; #指定緩存文件的key為請(qǐng)求的URI
add_header Nginx-Cache-Status $upstream_cache_status #把緩存狀態(tài)設(shè)置為頭部信息,響應(yīng)給客戶端
proxy_pass http://cache_server; #設(shè)置代理轉(zhuǎn)發(fā)的后端服務(wù)器的協(xié)議和地址
}
}
}
#對(duì)于一些實(shí)時(shí)性要求非常高的頁面或數(shù)據(jù)來說,就不應(yīng)該去設(shè)置緩存,下面來看看如何配置不緩存的內(nèi)容。
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
server {
listen 80;
server_name cache.lion.club;
#URI 中后綴為 .txt 或 .text 的設(shè)置變量值為 "no cache"
if ($request_uri ~ \.(txt|text)$) {
set $cache_name "no cache"
}
location / {
proxy_no_cache $cache_name; #判斷該變量是否有值,如果有值則不進(jìn)行緩存,如果沒有值則進(jìn)行緩存
proxy_cache my_cache; #設(shè)置緩存內(nèi)存
proxy_cache_valid 200 5m; #緩存狀態(tài)為200的請(qǐng)求,緩存時(shí)長為5分鐘
proxy_cache_key $request_uri; #緩存文件的key為請(qǐng)求的URI
add_header Nginx-Cache-Status $upstream_cache_status #把緩存狀態(tài)設(shè)置為頭部信息,響應(yīng)給客戶端
proxy_pass http://cache_server; #代理轉(zhuǎn)發(fā)
}
}
到了這里,關(guān)于Nginx緩存代理服務(wù)器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!