我正在配置一个odoo服务器,以阻止某些网络以外的人的某些路由。我在这个服务器上使用Nginx作为反向代理。
我的问题是与路由/web/session/lougout。当我在配置中添加以下两个块时,浏览器开始缓存来自路由的303答案,并停止向服务器发送报头。由于头丢失,它阻止了服务器使会话无效,并导致一系列问题。
location ~ ^/web/ {
add_header Content-Security-Policy upgrade-insecure-requests;
proxy_pass http://odoo-xxx-test;
proxy_buffering on;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
expires 864000;
allow *some ip* ;
allow *some ip* ;
allow *some ip* ;
deny all;
}
location ~ ^/web/(action/|content/|static/|image/|login|session/|webclient/) {
add_header Content-Security-Policy upgrade-insecure-requests;
proxy_pass http://odoo-xxx-test;
proxy_cache_valid 200 60m;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering on;
expires 864000;
}
从我的理解,第一个位置应该拒绝访问所有航线外的3允许ips的操作以外,第二应该允许每个人3 ips访问那些7路线。我不明白这两个块如何影响/web/session/logout路由的缓存,删除这两个指令修复了问题,但这种行为是在项目的要求。
欢迎任何帮助!
找到了我的问题的解决方案,结果是expires指令使NGINX服务器缓存303响应并提供服务,而不与代理服务器联系。
从两个位置删除expires指令修复了我们的问题。