当前位置: 首页 > 知识库问答 >
问题:

如何使用nginx服务静态文件

潘嘉颖
2023-03-14

我从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.orgconf的例子: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;

我也尝试过这个(以避免根指令),但也得到了404:

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

谢谢

共有2个答案

盖和洽
2023-03-14
server {
    listen 433 ssl;
    server_name plone.org

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

    }
}

如果你把资产放在合适的地方,这样做应该会奏效。

易超
2023-03-14

让我专注于我认为是你问题的核心:“用Apache/Nginx服务静态文件仍然是一个好的做法吗...?”

假设您使用的是代理缓存机制,这通常是一个浪费的优化,只会增加配置的复杂性。

相反,请首先访问您的站点设置并打开适当的http缓存。即使是最低限度的设置也会导致静态资源使用长时间的头调用。在正常情况下,这意味着您的zope/plone实例只很少提供静态资源。

在Nginx中设置代理缓存,或者——如果您需要更高的性能——设置Varnish。或者,使用类似Cloudflare的缓存CDN。

花时间实现缓存所带来的好处可能远远超过设置其他静态文件机制所带来的好处。

 类似资料:
  • 我试着设置nginx来服务我的node.js应用程序静态文件。问题是,当我试图得到我的文件时,我的状态是403禁止的。 当我尝试下载一个文件从 /root/appJs/public/css/style.css我写http://sitename.com/css/style.css我retive 403禁忌状态。我已经在一些论坛上寻找解决方案,但没有

  • 问题内容: 我有一个具有以下结构的Web应用程序: 我已经设法使用nginx和wsgi运行Web应用程序,但是问题是没有提供静态文件,我的意思是,当我转到它们的URL时,服务器找不到它们。它给我404。 这是我的nginx配置文件部分: 缺少什么吗? 问题答案: 将此添加到你的nginx配置 用你应用的绝对路径替换时,你应该注意它不包含静态目录,并且其中的所有内容都将存储在中。

  • 我们先来看看最简单的本地静态文件服务配置示例: server { listen 80; server_name www.test.com; charset utf-8; root /data/www.test.com; index index.html index.htm; } 就这些?

  • 我有一个Nginx服务器托管一个web应用程序,当直接访问时工作正常。其配置如下 现在我必须从另一个Nginx服务器上服务这个应用程序,所以我设置了如下所示的反向代理 当我从server2访问应用程序时,我会得到如下错误,例如,当我访问HTTP:server2.com/app/css/app.css时 [error]6601#0:*1 open()“/data/www/app/css/app.cs

  • 在根目录下新建文件夹叫static。代码可以通过/static/来引入相关的静态资源。 export default () => <img src="/static/my-image.png" alt="my image" /> _注意:不要自定义静态文件夹的名字,只能叫static ,因为只有这个名字 Next.js 才会把它当作静态资源。

  • 问题内容: 如何使用Go Web服务器提供index.html(或其他静态HTML文件)? 我只想要一个基本的静态HTML文件(例如,一篇文章),就可以从Go Web服务器上提供该文件。HTML应该可以在go程序之外进行修改,就像使用HTML模板时一样。 这是我的Web服务器,仅托管硬编码文本(“ Hello world!”)。 问题答案: 使用Golang net / http包,该任务非常容易