簡體   English   中英

提供靜態內容NGINX

[英]Serving Static Content NGINX

我是NGINX的新手 我還不太了解它,但我正在努力。 我很好奇使用NGINX從我的頁面提供靜態內容的最佳方式是什么。 我想要提供靜態內容的主要原因是我希望減少我的應用程序服務器上的負載,並增加頁面加載速度。


我碰到

一些好文章,幫助我把這些文章放在一起: 這里這里這里這里

但一切都還是有點清楚。


組態

文件路徑: etc/nginx/default

server {

    listen 80 default_server;
    server_name default;
    root /home/forge/site/public;

    location / {
        proxy_pass http://43.35.49.160/;
        try_files $uri $uri/ /index.php?$query_string;
    }

    # Media: images, icons, video, audio, HTC
    location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
        expires 1M;
        access_log off;
        add_header Cache-Control "public";
    }

    # CSS and Javascript
    location ~* \.(?:css|js)$ {
        expires 1y;
        access_log off;
        add_header Cache-Control "public";
    }
}

測試結果

保存我的文件后,我運行service nginx reload

接下來,我嘗試運行: curl -X GET -I http://45.33.69.160/index.php

我有:

HTTP/1.1 200 OK
Server: nginx/1.6.3
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: no-cache
Date: Fri, 08 May 2015 15:14:55 GMT
Set-Cookie: XSRF-TOKEN=eyJpdiI6IkhPa2kwK1wvd2kxMFV0TURzYnMwSXFnPT0iLCJ2YWx1ZSI6IkFpSFpvakNjcGp0b0RWcVViYXJcLzRHbmo3XC9qbStYc2VzYVh4ZHVwNW45UGNQMmltZEhvSys1NjhZVzZmckhzOGRBUk5IU1pGK084VDF1ZmhvVkZ4MlE9PSIsIm1hYyI6IjliMzc5NWQ4MWRiMjM1NzUxNjcyNGNmYWUzMGQyMDk3MjlkYTdhYzgxYTI0OGViODhlMTRjZTI4MWE5MDU2MGYifQ%3D%3D; expires=Fri, 08-May-2015 17:14:55 GMT; Max-Age=7200; path=/
Set-Cookie: laravel_session=eyJpdiI6Iklhb041MkVBak0rVm5JeUZ0VVwvZ3pnPT0iLCJ2YWx1ZSI6IitRUFlzQzNmSm1FZ0NQVVFtaTJ4cG1hODlDa2NjVDgzdXBcLzRcL0ZSM1ZPOTRvRGo5QjQ1REluTUM3Vjd3cFptV3dWdHJweTY3QW5QR2lwTkZMUlNqbnc9PSIsIm1hYyI6IjIxOTZkYzM5ODE0N2E4YmQzODMxZGYzMDY3NjI4ODM1YWQxNGMxNDRlZDZmMGE1M2IwZWY2OTU4ZmVjOTIyMjkifQ%3D%3D; expires=Fri, 08-May-2015 17:14:55 GMT; Max-Age=7200; path=/; httponly

然后,我嘗試運行curl -X GET -I http://45.33.69.160/css/custom.css

我有 :

HTTP/1.1 200 OK
Server: nginx/1.6.3
Date: Fri, 08 May 2015 15:16:03 GMT
Content-Type: text/css
Content-Length: 2890
Last-Modified: Thu, 07 May 2015 03:02:38 GMT
Connection: keep-alive
ETag: "554ad5ce-b4a"
Accept-Ranges: bytes

為什么我看到Cache-Control: no-cache我只是設置了緩存?

現在一切都不清楚。


問題

有人可以說清楚如何:

  • 正確配置
  • 測試該配置是否有效
  • 看到緩存和緩存之間的不同
  • 對它進行基准測試並在頁面或CLI上打印出該報告

Cache-Control: no-cache

正如在這個鏈接到規范的 no-cache的答案中所說的那樣, Cache-Control: no-cache應告訴用戶代理中間緩存使用哪種緩存樣式(即每次使用服務器重新驗證)。 如果您僅使用nginx,則適用。 如果您將其用作傳遞,則需要設置 proxy_ignore_headers ,例如

proxy_ignore_headers Cache-Control;

配置

除此之外:在關於內容緩存NGINX參考中 ,它表示要放線

    proxy_cache_path /data/nginx/cache keys_zone=one:10m;

http部分,然后是

        proxy_cache one;

server部分。

測試

在這個SF問題中 ,它說通過配置文件添加X-Cache-Status標頭來測試緩存行為

add_header X-Cache-Status $upstream_cache_status;

答案說明了這一點

您可以使用查看標題

  • Firefox插件firebug
  • Chrome調試控制台
  • cURL(卷曲-I)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM