建站服務器
proxy_cache:nginx緩存模塊,用于設置nginx的緩存功能
nginx緩存原理:
nginx的緩存文件是根據key:value進行存儲的,key直接存儲在內存中,value指向本地文件系統目錄,這個目錄最多支持三級子目錄
proxy_cache_path #用于設置nginx緩存的相關屬性,只能出現在http段
例:proxy_cache_path /nginx/cache1 levels=1:2 keys_zone=cache1:100m inactive=1d max_size=10g;
/nginx/cache1 #緩存目錄,屬主和屬組必須是運行nginx的用戶
levels=2:3 #設置目錄個數,2表示1級子目錄的名稱只能用2個字符表示,3表示2級子目錄的名稱只能用3個字符表示
keys_zone=cache1:100m #cache1表示緩存名稱 100m:表示key在內存中的最大大小
inactive=1d #如果一天沒有人訪問這個緩存,那么這個緩存將被清理
max_size=10g #本地文件系統存儲的最大緩存大小
配置完proxy_cache_path在需要緩存的地方調用
調用proxy_cache_path
proxy_cache cache1; #調用名稱為cache1的緩存配置,proxy_cache可以出現在http,server,location段
nginx緩存配置實例:
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
proxy_cache_path /nginx/cache1 levels=1:2 keys_zone=cache1:100m inactive=1d max_size=10g;
#cache1緩存定義
server {
listen 80;
server_name localhost;
location / {
proxy_cache cache1; #調用cache1緩存
proxy_cache_valid 200 1d; #狀態碼為200的頁面緩存一天
proxy_cache_valid 301 302 10m; #狀態碼為301 302的頁面緩存10分鐘
proxy_cache_valid any 1m; #其余所有頁面緩存1分鐘
proxy_pass http://192.168.0.50/;
index index.html index.htm;
}
}
}
驗證:
1、客戶端訪問nginx服務器
2、查看/nginx/cache1目錄下是否生成緩存目錄
3、更改后端服務器頁面信息,用客戶端訪問查看頁面信息是否改變(沒改變則緩存搭建成功)
proxy_set_header:http頭設置
有的時候nginx代理的后端服務器需要記錄客戶端的ip地址等信息,但是由于nginx代理,后端服務器記錄的ip實際上是nginx的ip,如果想要后端服務器能夠獲得客戶端的真實ip則需要proxy_set_header指令的配置
proxy_set_header host $host; #host自定義名稱,$host存儲主機名的變量
proxy_set_header real-ip $remote_addr; #$remote_addr存儲客戶端ip的變量
配置實例:
nginx服務器:
server {
listen 80;
server_name localhost;
location / {
proxy_set_header real_ip $remote_addr; #重新封裝ip地址,頭部名real_ip
proxy_pass http://192.168.0.50/;
index index.html index.htm;
}
}
后端apache服務器:
logformat %{real_ip}i %h %l \\\\%r\\\\ %>s %b \\\\%{referer}i\\\\ \\\\%{user-agent}i\\\\ combined
#在logformat中添加%{real_ip}i,real_ip是封裝的頭部名稱
驗證:
1、查看后端服務器的access_log日志,記錄的ip是否是客戶端的真實ip
馬來西亞云服務器價格走勢三聲母價值高 drq.com等多枚域名一口價交易糧油積分小程序定制有助于提高商家的獲利率怎樣備份阿里云服務器中的網站廣東云服務器租用云主機php如何實現qq登陸哪個平臺的云服務器更便宜些網絡對我們的影響有哪些?