%20%E4%BB%A3%E7%90%86%EF%BC%8C%E5%90%91%E9%9D%9C%E6%85%8B%E6%AA%94%E6%A1%88%E6%96%B0%E5%A2%9E%E8%87%AA%E8%A8%82%E6%A8%99%E9%A0%AD.png)
我正在嘗試向靜態文件添加標頭,我怎麼能正確地做到這一點?
我嘗試過嵌套但沒有成功
server {
location / {
proxy_pass http://apache.backend.local/;
proxy_no_cache $http_pragma $http_authorization;
proxy_cache radish_cache;
proxy_cache_bypass $http_cache_control;
add_header X-Proxy-Cache $upstream_cache_status;
proxy_redirect off;
proxy_pass_header Set-Cookie;
proxy_ignore_headers Cache-Control Expires;
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;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header Accept-Encoding '';
proxy_set_header Connection '';
proxy_set_header Referer $http_referer;
proxy_set_header Cookie $http_cookie;
proxy_hide_header X-Powered-By;
proxy_connect_timeout 59s;
proxy_send_timeout 600;
proxy_read_timeout 600;
proxy_buffer_size 64k;
proxy_buffers 16 32k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 64k;
location ~* \.(3gp|gif|jpg|jpeg|png|ico|wmv|avi|asf|asx|mpg|mpeg|mp4|pls|mp3|mid|wav|swf|flv|exe|zip|tar|rar|gz|tgz|bz2|uha|7z|doc|docx|xls|xlsx|pdf|iso)$ {
gzip_static off;
#add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
access_log off;
expires 30d;
break;
}
location ~* \.(js)$ {
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
access_log off;
expires 10d;
break;
}
location ~* \.(css)$ {
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
access_log off;
expires 10d;
break;
}
}
}
還嘗試不嵌套並在每個位置包含代理配置,然後我收到此錯誤
"proxy_pass" cannot have URI part in location given by regular expression, or inside named location, or inside "if" statement, or inside "limit_except"
我正在使用最新的 openresty
答案1
/
語句的末尾proxy_pass
是錯誤訊息中提到的「URI 部分」。
在您的設定檔中,您有:
location / {
proxy_pass http://apache.backend.local/;
...
}
/
將(從location
)翻譯成/
(從proxy_pass
語句)是沒有意義的 - 因此“URI 部分”是不必要的,應該刪除。
proxy_pass
當您嘗試以各種方式實施時正規表示式 location
區塊時,「URI 部分」觸發了錯誤訊息。但由於您不需要proxy_pass
執行任何 URI 轉換,因此您可以安全地刪除尾隨的/
.
看這個文件了解詳情。