定義緩存目錄
<br\>
使用您喜歡的文本編輯器打開/etc/nginx/nginx.conf,並在http {區域加入:php
- proxy_cache_path /var/www/cache levels=1:2 keys_zone=my-cache:8m max_size=1000m inactive=600m;
-
- proxy_temp_path /var/www/cache/tmp;
-
- real_ip_header X-Forwarded-For;
前2行建立一個緩存目錄。 真正的X-Forwarded-For頭指示Nginx將原始IP地址轉發到後端(端口8080),不然全部流量彷佛都來自127.0.0.1。html
應用緩存
<br\>
接下來,咱們須要在/etc/nginx/sites-available/website下建立虛擬主機nginx
- server {
- listen 80;
- server_name _;
- server_tokens off;
- location / {
- proxy_pass http://127.0.0.1:8080/;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_cache my-cache;
- proxy_cache_valid 3s;
- proxy_no_cache $cookie_PHPSESSID;
- proxy_cache_bypass $cookie_PHPSESSID;
- proxy_cache_key "$scheme$host$request_uri";
- add_header X-Cache $upstream_cache_status;
- }
- }
-
- server {
- listen 8080;
- server_name _;
- root /var/www/your_document_root/;
- index index.php index.html index.htm;
- server_tokens off;
- location ~ \.php$ {
- try_files $uri /index.php;
- fastcgi_pass 127.0.0.1:9000;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- include /etc/nginx/fastcgi_params;
- }
- location ~ /\.ht {
- deny all;
- }
- }
而後經過執行如下操做啓用它:web
- cd
- ln -s /etc/nginx/sites-available/website /etc/nginx/sites-enabled/website
- /etc/init.d/nginx restart
第一個服務器定義是在端口80上運行的反向緩存代理。
第二個服務器定義用於後端(典型的nginx配置,端口8080,而不是80)。後端
proxy相關指令介紹
<br\>
proxy_pass http://127.0.0.1:8080/將流量轉發到端口8080,Nginx後端位於該端口
proxy_cache my-cache定義要使用的高速緩存,這裏是my-cache,咱們以前在nginx.conf中添加的
proxy_cache_valid 3s將緩存時間設置爲3秒。 在肯定緩存到期以前的秒數(清除緩存)。 此數字能夠根據您網站上的內容的新鮮度而增長或減小。
proxy_no_cache $ cookie_PHPSESSID禁止反向緩存代理緩存具備PHPSESSID Cookie的請求。 不然,您的登陸用戶頁面將被緩存並顯示給其餘人。 若是您使用的Cookie框架使用Cookie的默認PHPSESSID之外的Cookie名稱,請務必替換。
proxy_cache_bypass $ cookie_PHPSESSID指示代理繞過緩存,而且若是傳入請求包含PHPSESSID Cookie,則將請求轉發到後端。 不然,你最終會顯示登陸的用戶,登出的版本(從緩存提供)。
proxy_cache_key 「$scheme$host$request_uri」定義用於緩存的鍵。 如下使用$ request_uri,它適合於根據url存儲不一樣版本的頁面(不一樣的GET參數,不一樣的內容)。
add_header X-Cache $ upstream_cache_status可用於調試,返回HIT,BYPASS或EXPIRED,具體取決於請求是從高速緩存(HIT)提供仍是從後端(MISS)提供.EXPIRED表示在高速緩存中找到緩存,但它已過時,並已轉發到後端。centos