nginx反向代理:未设置过期标头 -- nginx 领域 和 reverse-proxy 领域 服务器管理 相关 的问题

Nginx reverse proxy: Not setting expires header


5
vote

问题

中文

我的静态资产配置为

   location @upstream {    proxy_pass http://localhost:82;      proxy_set_header   Host             $host;     proxy_set_header   X-Real-IP        $remote_addr;     proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;  }   location ~* .(js|css|png|jpg|jpeg|gif|ico)$ {      try_files $uri @upstream;      access_log off;      expires max;      add_header Cache-Control public;  }   

到期Max未受到尊重。
我认为它尊重传入的服务器标题。

如何修改此以设置到期标题?

英文原文

I have my static assets configured as

 location @upstream {    proxy_pass http://localhost:82;      proxy_set_header   Host             $host;     proxy_set_header   X-Real-IP        $remote_addr;     proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;  }   location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {      try_files $uri @upstream;      access_log off;      expires max;      add_header Cache-Control public;  } 

The expires max is not respected.
I think its respecting the incoming server header.

How can modify this to set expires header?

     

回答列表

3
 
vote
vote
最佳答案
 

nginx只应用一个地点,从来没有更多。在您的示例中,它将将过期标头应用于现有的静态文件,但从@upstream位置未找到的任何文件都将忽略Access_log,从静态位置到期和add_header指令。

如果要设置到期,则应在两个位置复制指令。设置 proxy_hide_header 也可能是必需的。

 

Nginx only ever applies one location, never more. In your example it will apply the expires header to existing static files, but any files not found and thus coming from the @upstream location will ignore access_log, expires and add_header directives from static location.

If you want to set expires you should duplicate the directive across both locations. Setting proxy_hide_header might also be required.

 
 
   
   

相关问题

0  nginx可以从URL加载证书  ( Is it possible for nginx to load certs from a url ) 
我们托管许多不同的域,目前证书生活在数据库中。在那里的证书中逐渐变得越来越乏味,只有Nginx可以加载它们。 如果我们可以像以下类似的东西会很好: server { server_name www.example.com; listen 443 ssl; ssl_certificat...

2  nginx反向代理到LAMP服务器:无法登录PHPMYADMIN  ( Nginx reverse proxy to lamp server cant login to phpmyadmin ) 
我很新的是apache,甚至更新到反向代理,但我最终用nginx(作为反转代理)和apache安装一个服务器,以管理具有不同技术的网站。 PHP网站(下面的PHP_SITE)由Apache处理,Ruby在Rails网站上由Nginx处理。稍后应添加更多网站。一切都在工作正常,除了phpmyadmin。 我的问题:我可...

4  nginx的默认目录?  ( Default directory for nginx ) 
我有Ubuntu 15.04。搜索后,我发现各种链接建议nginx的默认目录 /usr/share/nginx/html 。它看起来是创建的目录,并且已经存在一个 /usr/share/nginx/htmlcdefghijklmn2 文件。我试图添加另一个HTML文件,发现我无法浏览到该位置。然后,我发现了另一个链接...

0  编写nginx服务器块以捕获通配符n级子域?  ( Writing an nginx server block to capture wildcard n level subdomains ) 
我正在运行nginx代理服务器,以使用OpenResty / Lua和Letsencrypt自动生成SSL证书,在多租户SaaS平台中。我有许多需要证书的域,而且无法白发性审商它们,因此我的证书服务器接受指向它的所有请求。 我开始看到很多符合域结构的大量无效域请求: www.randomsubdomain.any...

0  如何在nginx中设置名为Virtual Hosts?  ( How to setup named virtual hosts in nginx ) 
我想一旦在我的本地浏览器中输入mysite.com即将指出127.0.0.1:8000。 我已经完成了一些研究,似乎是nginx我可以在端口80上设置反向代理,将流量重定向到Django端口8000。 我一直忘了一段时间并做了这些步骤。: sudo vi /etc/nginx/sites-enabled/defa...

1  nginx不会将外部请求传递给localhost  ( Nginx doesnt pass outer request to localhost ) 
jetty服务器在localhost上运行:8080和在通过curl(Putty)提出请求时成功响应: curl -H "Content-Type: application/json" -X POST -d '{"message":"Hi"}' http://localhost:8080 我有以下 ngi...

0  nginx + php5-fpm + cifs share + cakephp超时  ( Nginx php5 fpm cifs share cakephp timeout ) 
我最近将我的cakephp 3开发环境移动到网络共享。 所涉及的服务器只有nginx webroot的路径更改( root /var/www/webroot ,到 root /mnt/dev/webroot )。 我正在通过 /etc/fstab 安装CIFS共享,如下所示: //nfs/WebDev /mnt/...

1  在nginx的proxy_pass中删除一个cookie  ( Removing one cookie in proxy pass of nginx ) 
我正在尝试 proxy_pass 整个请求将我nginx到某些基本URL到另一个上游服务器删除 server cookie。所有其他cookie,HTTP标头,应保存URL本身,发送到上游和响应传回我的客户端。 到目前为止,我尝试了什么在本指南< / a>在nginx论坛上。以下是我的位置指令看起来如何: s...

1  NGNIX套接字文件中未找到/ TMP和/ var / TMP / UWSGI?  ( Ngnix socket file not found in tmp and var tmp uwsgi ) 
在CentOS 7上,Nginx 1.10.2和UWSGI 2.0.14 当我配置UWSGI以在/ var / tmp / uwsgi或/ tmp中打开套接字时,我从nginx上看一条消息,说它找不到套接字文件: 2017/06/07 16:54:53 [crit] 2642#0: *7 connect() t...

0  nginx拆分在多个文件中  ( Nginx split config in multiple files ) 
我还在学习nginx,我遇到了一个问题。 所以之前开始我的项目我正在拆分配置文件的问题。 因此,该想法是拥有一个"主要" 文件,其中服务器配置,示例: server { server_name demo.server.com; include my/custom/location/*.nginx...

0  如何使挖掘荣誉TTLS /使用本地操作系统缓存?  ( How to make dig honour ttls use the local os cache ) 
当我运行 dig example.com 响应回到 SERVER: 192.168.0.1 ,即使在后续运行。这意味着dig始终正在进行网络调用来解析DNS记录。 i(相反,不知情)假设我的操作系统将根据其TTL缓存DNS记录,并且该挖掘将使用该缓存。 dig否则默认忽略ttl /不使用缓存?如果是,我如何让挖掘...

5  在nginx配置文件中,如何定义包含“$”符号的fastcgi_param?  ( In a nginx configuration file how to define a fastcgi param that contains the ) 
我正在尝试为PHP应用程序定义一些环境变量,但其中一个变量包含"$" 符号。当我用 nginx -t 测试配置文件时,我收到一条错误消息,告诉我一个变量不存在。它似乎在"$" 作为变量名称之后解释文本,当然没有定义。 也许我没有在正确的地方搜索,但我找不到有关如何逃避"$" 字符的信息。这是可能的吗? 更新:我试图括...

-1  nginx:同一域上的不同网站  ( Nginx different sites on the same domain ) 
我正在研究几个PHP项目,我想在不同的别名上部署在同一个nginx webserver(同名)上的项目。例如: http://localhost/project1, http://localhost/project2 。我认为如果在-avabible和启用的站点中添加多个配置,则可以足够,但它不起作用。另一件事我想要...

0  nginx俘虏门户Radius身份验证  ( Nginx captive portal radius authentication ) 
我有多个ruckus接入点,我想为客户身份验证提供自定义俘虏门户。 我想要的是检查用户当前是否有访问 - 然后将他切换到他想要的网站,如果没有 - 显示俘虏门户。 我可以用ngnix和 freeradius ? ...

-1  NGNIX未知指令  ( Ngnix unknown directive ) 
在Amazon EC2上使用Ubuntu。重新启动服务器时,我正在收到此错误消息: unknown directive "ec2-54-201-86-229.us-west-2.compute.amazonaws.com" in /etc/nginx/conf.d/default.conf:3 我正在遵循安...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.