首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >LiipImagineBundle镜像的Nginx访问日志

LiipImagineBundle镜像的Nginx访问日志
EN

Stack Overflow用户
提问于 2013-06-05 03:26:18
回答 1查看 1.3K关注 0票数 2

我在我的Symfony2 2.1.10安装中安装了LiipImagineBundle,并且我的nginx服务器遇到了一些配置问题。在网上,我发现this nice snippet是Symfony2应用程序的一个很好的、简单的nginx配置。我添加了几行代码。最重要的是,我希望能够禁用图像等静态文件的access.log。以下规则集可以完美地工作:

代码语言:javascript
复制
location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
    expires 30d;
    add_header Pragma public;
    add_header Cache-Control "public, must-revalidate, proxy-revalidate";
    access_log off;
}

但今天我发现,需要通过app.phpapp_dev.php访问LiipImagineBundle生成的图像。否则它们不会生成,nginx会记录以下错误消息:

代码语言:javascript
复制
[error] 28988#0: *733 open() "/[...].jpeg" failed (2: No such file or directory)

基本上是404。文件不会生成,因为它不是通过Symfony2应用程序访问的,而是直接访问的。

我需要一个配置,允许我禁用访问日志记录,并向静态文件添加一些缓存头,但仍然通过与以前相同的路径提供它们。

对此有可能的解决方案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-05 18:10:57

问题解决了。我已经创建了一个匹配机器人、app.php/app_dev.phppng|jp[e]g|gif等的正则表达式。如果没有生成镜像,服务器将根据之前是否缓存而使用201 Created和随后的200 Ok304 Not Modified进行响应。下面是我对应的nginx配置:

代码语言:javascript
复制
location ~ ^/(app_dev|app)\.php(.*?)\.(?:ico|gif|jpe?g|png)$ {
    expires 18h;
    add_header Cache-Control "public, must-revalidate, proxy-revalidate";
    access_log off;

    # still redirect because we are using LiipImagineBundle!
    include fastcgi_params;
    fastcgi_pass unix:/tmp/php5-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param HTTPS off;
}

# more static files:
location ~* \.(?:css|js)$ {
    expires 18h;
    add_header Cache-Control "publi, must-revalidate, proxy-revalidate";
    access_log off;
}

location ~ ^/(app_dev|app)\.php$ {
    include fastcgi_params;
    fastcgi_pass unix:/tmp/php5-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param HTTPS off;
}

我希望这能帮到你。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16925886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档