我正在使用Nginx来在我的静态文件中添加caching头文件并且工作。 我正在使用这个位置
location ~* \.(ico|css|js|gif|jpeg|jpg|png|woff|ttf|otf|svg|woff2|eot)$ { expires 30d; add_header Pragma public; add_header Cache-Control "public"; include /etc/nginx/mime.types; }
我只是添加mime.types,否则我的CSS文件来与“application / octet-stream”。
当我使用SEO分析工具时,我的问题发生,如https://gtmetrix.com 。 此工具附加; jsessionid = k40cMYJwvlCBjX5bkZY6t5oeMquLcMv0dJve1PtD.ip-XXX-XX-XX-XXX和我不能我的位置匹配此
继其他几个答案后,我试了一下
location ~* \.(ico|css|js|gif|jpeg|jpg|png|woff|ttf|otf|svg|woff2|eot)(?:;.+)?$ { expires 30d; add_header Pragma public; add_header Cache-Control "public"; include /etc/nginx/mime.types; }
但是当我这样做,我收到这个消息
nginx:[emerg]指令“location”在/etc/nginx/conf.d/default.conf中没有打开“{”:34
我做错了什么?
proxy_cache_path /tmp/nginx levels=1:2 keys_zone=nginx_cache_zone:10m inactive=60m; proxy_cache_key "$scheme$request_method$host$request_uri"; upstream originserver { server 127.0.0.1:8080; } server { server_name mysite.com; rewrite ^(.*) $scheme://www.mysite.com$1 permanent; } server { root /var/www/mysite; listen 80; server_name www.mysite.com; location / { try_files $uri @backend; } location @backend { proxy_pass http://originserver; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; include /etc/nginx/mime.types; } location ~* \.(ico|css|js|gif|jpeg|jpg|png|woff|ttf|otf|svg|woff2|eot)(?:;.+)?$ { expires 30d; add_header Pragma public; add_header Cache-Control "public"; include /etc/nginx/mime.types; } }
也许问题可能是其他问题。 当我返回原来的位置
~* \.(ico|css|js|gif|jpeg|jpg|png|woff|ttf|otf|svg|woff2|eot)$
并用putty在服务器上testing
curl -I http://example.com/images/myimg.jpg;jsessionid=k40cMYJwvlCBjX5bkZY6t5oeMquLcMv0dJve1PtD.ip-XXX-XX-XX-XXX
作品的过期头包括,但是当我在我的浏览器中打开相同的url,不是。
我解决了我的问题。
看编辑2后,我发现问题的来源是在蜻蜓10服务器。 他在链接中追加jsessionid。
要解决我只是添加下面的标签在我的web.xml
<session-config> <tracking-mode>COOKIE</tracking-mode> </session-config>