Nginx快取伺服器配置
ngx_http_proxy_module模組
代理模組,允許向另一個伺服器傳送請求
重要的幾個指令
1.proxy_pass URL;
設定代理伺服器的協議和地址以及應該對映位置的URI。作為協議,可以指定“HTTP”或“HTTPS”。地址可以指定為域名或IP地址,以及可選埠
有個容易混的地方需要注意下
server {
...
server_name HOSTNAME;
location /uri/ {
proxy http://host[:port];
##proxy_pass後面的路徑不帶uri時,其會將location的uri傳遞給後端主機
##客戶端訪問:http://HOSTNAME/uri 實際上訪問: http://host/uri
}
...
}
server {
...
server_name HOSTNAME;
location /uri/ {
proxy http://host/new_uri/;
#proxy_pass後面的路徑是一個uri時,其會將location的uri替換為proxy_pass的uri;
#客戶端訪問http://HOSTNAME/uri/,實際上是在訪問 http://host/new_uri/
}
...
}
2、proxy_set_header field value;
設定發往後端主機的請求報文的請求首部的值;可以自定義首部
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
3、proxy_cache_path
定義可用於proxy功能的快取;使用者訪問代理伺服器的時候,如果每次都往後端去重新取資料,這個非常耗資源,所以可以再這裡設定快取,將常用的快取在代理伺服器本地。這裡使用的方式需要先用這個指令定義,再用proxy_cache這個指令指定使用。這個指令後面會說。
格式:
proxy_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name:size [inactive=time] [max_size=size] [manager_files=number] [manager_sleep=time] [manager_threshold=time] [loader_files=number] [loader_sleep=time] [loader_threshold=time] [purger=on|off] [purger_files=number] [purger_sleep=time] [purger_threshold=time];
示例:
proxy_cache_path /usr/local/nginx/proxy_cache levels=1:2:1 keys_zone=pcache:5m max_size=2g
表示快取存放的路徑為/usr/local/nginx/proxy_cache,levels=1:2:1 使用者訪問的時候我們可以設定對uri做hash得到的值,從右到左。第1個字元表示第一級目錄的目錄名,第2,3個字元表示第二級目錄名,第4個字元表示第三級目錄名。這種方式方便查詢,,假設我們基於uri做hash,使用者訪問的時候我們根據hash的結果查詢目錄。可以快速檢索。pcache表示鍵的名字,5m是鍵使用的空間。目錄磁碟空間最大不能超過2g,可以結合後面的圖進行理解
4、proxy_cache zone | off;
指明要呼叫的快取,或關閉快取機制;使用的時候再http,server,location中寫
示例:
proxy_cache pcache;
#表示使用pcache快取,這個使用之前必須先用proxy_cache_path先定義。
5、 proxy_cache_key string;
快取中用於“鍵”的內容;
proxy_cache_key $scheme$proxy_host$request_uri;
這裡設定$scheme$proxy_host$request_uri作為鍵
6、proxy_cache_valid [code …] time;
定義對特定響應碼的響應內容的快取時長;定義在http{…}中;Nginx不僅可以
常用配置的示例
環境
代理伺服器ip:192.168.253.128
後端真實伺服器ip:192.168.253.139 (這臺機上有一個httpd服務,index.html內容為httpd)
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
proxy_cache_path /usr/local/nginx/proxy_cache levels=1:2:1 keys_zone=pcache:5m max_size=2g; ##定義快取存放路徑
server {
listen 80;
server_name localhost;
location / {
root html;
proxy_cache pcache; ##使用上面定義的pcache快取
proxy_pass http://192.168.253.139; ##後端伺服器為192.168.253.139
proxy_cache_key $request_uri; ##將$request_uri作為鍵
proxy_cache_valid 200 302 301 1h;##將響應碼200,302,301進行快取,時間為1小時
proxy_cache_valid any 1m; ##除了200,302,301這幾個響應碼,其他的響應碼都快取1分鐘。
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
然後啟動Nginx
nginx
訪問一下代理伺服器看是否正常
這個是後端真實伺服器的頁面。之前設定的。所以可以看出是成功了的。然後我們可以看一下快取是否生效了
相關文章
- nginx快取使用詳解,nginx快取使用及配置步驟Nginx快取
- Nginx配置瀏覽器快取Nginx瀏覽器快取
- 009.Nginx快取及配置Nginx快取
- nginx快取配置及開啟gzip壓縮Nginx快取
- Nginx 代理快取Nginx快取
- Nginx 內容快取及常見引數配置Nginx快取
- 使用nginx快取伺服器上的靜態檔案Nginx快取伺服器
- Nginx快取設定教程Nginx快取
- nginx反向代理快取教程。Nginx快取
- Nginx瀏覽器快取Nginx瀏覽器快取
- nginx快取與優化Nginx快取優化
- Nginx搭建反向代理負載均衡和web快取伺服器Nginx負載Web快取伺服器
- http快取與cdn快取配置指南HTTP快取
- Ehcache快取配置快取
- 配置session——快取Session快取
- 伺服器快取伺服器快取
- Nginx快取原理及機制Nginx快取
- 深入Nginx + PHP 快取詳解NginxPHP快取
- nginx靜態檔案快取Nginx快取
- nginx快取優先順序Nginx快取
- Nginx 的五種快取方法Nginx快取
- 瀏覽器快取和webpack快取配置瀏覽器快取Web
- web 快取伺服器 HTTP2 效能測試: nuster vs nginxWeb快取伺服器HTTPNginx
- Nginx 快取使用指南-簡單Nginx快取
- nginx 只快取靜態檔案Nginx快取
- Apache靜態快取配置Apache快取
- nginx伺服器搭建以及配置Nginx伺服器
- npm本地快取伺服器NPM快取伺服器
- 使用Nginx+Memcache做頁面快取Nginx快取
- nginx DNS 解析快取的更新問題NginxDNS快取
- Nginx + Gunicorn 伺服器配置部署 DjangoNginx伺服器Django
- nginx伺服器配置問題心得Nginx伺服器
- nginx+uwsgi+flask 伺服器配置NginxFlask伺服器
- Django(39)使用redis配置快取DjangoRedis快取
- Nginx越界讀取快取漏洞 CVE-2017-7529Nginx快取
- 伺服器快取怎麼清理伺服器快取
- Django使用redis快取伺服器DjangoRedis快取伺服器
- Nginx之11吸星大法 - (頁面快取)Nginx快取