簡體   English   中英

如何使用Nginx提供靜態文件

[英]How to serve static file with nginx

我從Apache切換到Nginx,並且使用apache,皮膚文件夾中的所有靜態文件(圖像,css,javascript)都直接由Apache提供。

范例:

DocumentRoot    /zope/z_france_velo_tourisme/france-velo-tourisme/src
RewriteRule  ^/images-fvt/(.*) /fvt.commun/fvt/commun/skins/fvt_commun_images/images-fvt/$1 [L]

我讀了一些有關Nginx和Plone的文檔,但我沒有看到。 這是來自Plone.org conf的示例: https : //github.com/plone/plone-org-nginx/blob/master/nginx.conf

所以,我的問題是:用Apache / Nginx提供靜態文件仍然是一種好習慣,如果是的話,如何用Nginx完成呢?

我已經嘗試過這樣的配置,但是沒有用,我收到404錯誤:

root /zope/z_france_velo_tourisme/france-velo-tourisme/src;
rewrite ^/images-fvt/(.*)$ /fvt.commun/fvt/commun/skins/fvt_commun_images/images-fvt/$1;

我也嘗試過這樣做(避免使用root指令),但也得到了404:

rewrite ^/images-fvt/(.*)$ /zope/z_france_velo_tourisme/france-velo-tourisme/src/fvt.commun/fvt/commun/skins/fvt_commun_images/images-fvt/$1;

謝謝。

讓我集中討論我認為是您的問題核心的內容:“使用Apache / Nginx ...提供靜態文件仍然是一種好習慣嗎?”

假設您使用的是代理緩存機制,這通常是浪費的優化,只會增加配置的復雜性。

相反,請首先訪問您的站點設置並打開適當的http緩存。 即使是最小設置,也將導致靜態資源與要求較長過期時間的標頭一起使用。 在正常情況下,這將意味着您的zope / plone實例很少提供靜態資源。

在Nginx內設置代理緩存,或者-如果需要出色的性能-設置Varnish。 或者,使用緩存CDN(例如Cloudflare)。

從花時間實現緩存中獲得的好處可能會大大超過通過設置備用靜態文件機制所看到的任何好處。

server {
    listen 433 ssl;
    server_name plone.org

    root /path/to/virtual/server/folder;
    location / {
        proxy_pass http://whatever;
    }
    location ~^ (images|css|js|anything)/ {

    }
}

如果您將資產放在正確的位置,則類似的操作應該會起作用。

暫無
暫無

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

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