我有Nginx充当代理服务器的问题: 请求 - > NGINX PROXY - >应用服务器(只有一个)
代理服务器正在侦听端口443和80上的应用程序服务器。上游服务器返回的标头正被代理删除。我被迫使用:
add_header 'Content-Length' $upstream_http_content_length;
它适用于Content-Length,但它不适用于Last-Modified标头。来自Nginx代理的使用私有IP到上游的卷曲请求返回所有标头。为什么Nginx代理会删除此标题,即使它的返回是使用add_header
指定的?
我有以下nginx.conf示例:
location /some-web-app {
proxy_pass http://backend/some-web-app;
proxy_redirect off;
proxy_redirect http $scheme;
proxy_set_header Host $host;
add_header 'Last-Modified' $upstream_http_last_modified;
add_header 'Content-Length' $upstream_http_content_length;
sub_filter 'codebase="http' 'codebase="https';
sub_filter_types application/x-java-jnlp-file;
access_log /var/log/nginx/some-web-app_access.log combined_jsession_upstream;
error_log /var/log/nginx/some-web-app_err.log;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/htpasswd;
}
答案 0 :(得分:0)
在位置块中转发返回的最后修改标头put following指令:
data = analytics.data().ga().get(tableID, // Table Id.
startDate, // Start date.
endDate, // End date.
metrics).setDimensions(dimensions).setSamplingLevel("DEFAULT").setStartIndex(1).setMaxResults(1000).setOutput("json")
.setFields(fields).execute();
要使用sub_filter_last_modified on
转发任何其他标头使用add_header
。在这里,我将转发Content-Length标题:
$upstream_http_${header}