为了减轻BREACH攻击,我希望仅在$http_referer
的主机名与我的服务器名称匹配时才有选择地启用gzip。
我该怎么做?我尝试使用valid_referers server_names;
,但似乎nginx在if语句中不允许gzip on
。当我把它包含在我的conf中时:
valid_referers server_names;
if ($invalid_referer = "") {
gzip on;
gzip_vary on;
}
我得到[emerg] "gzip" directive is not allowed here
。必须是一种选择性启用gzip的方法。
答案 0 :(得分:1)
nginx documentation指定在以下情况下允许使用gzip
选项
Context: http, server, location, if in location
这意味着您需要将gzip
开关包装在location
块内。
gzip off;
server {
listen 80;
server_name localhost;
valid_referers server_names;
location / {
root /var/www/;
index index.html index.htm;
if ($invalid_referer = "") {
gzip on;
}
}
}