当前位置: 首页 > 知识库问答 >
问题:

proxy_cookie_path在nginx中不起作用

柯耀
2023-03-14

我的后端服务器发出什么样的cookie响应。我想更改cookie请求中的路径值。

从nginx开始后,我被要求使用proxy_cookie_path指令

所以我一直在尝试在我的nginx配置中使用proxy_cookie_path指令字段。

这里是nginx返回给客户端的响应。正在尝试将路径值从/更改为/abc/xyz/120

HTTP/1.1 201 CREATED
Server: nginx
Date: Thu, 31 Aug 2017 12:16:10 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Cookie
X-Frame-Options: SAMEORIGIN
Allow: POST, OPTIONS
Set-Cookie: expires=Thu, 30-Aug-2018 12:19:09 GMT; Max-Age=31449600; Path=/
Strict-Transport-Security: max-age=15768000

这是nginx规则

 # proxy needed for auth to work
   location /tron/api/v1/ {

   proxy_ssl_session_reuse off;
  # End of extra settings
   proxy_set_header        X-Real-IP $remote_addr;
   proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

   proxy_set_header        X-Forwarded-Host $host;
   proxy_set_header        X-Forwarded-Server $host;

  # End of extra settings
    proxy_set_header        X-Scheme $scheme;

   location ~ ^/tron/api/v1/(.*) {

  if ($cookie_VD_TYPE = "XYZ") {

  proxy_pass              https://10.132.250.$cookie_XYZ/tron/api/v1/$1$is_args$args;
  proxy_cookie_path off;
  proxy_cookie_path      / /abc/xyz/120;

 }

  proxy_pass            https://10.132.250.$cookie_ABC/tron/api/v1/$1$is_args$args;
 }
}

所以问题是当我添加

proxy_cookie_path;proxy_cookie_path/ /abc/xyz/120;

使用此指令会给我错误

 "proxy_cookie_path" directive is not allowed here in /etc/nginx/sites-enabled/default

我已经检查了我的nginx-V,以了解它是否已安装。所以我的问题是:-

>

  • 这是正确的方法,即proxy_cookie_path是解决方案?

    若proxy_cookie_path是解决方案,那个么我并没有将其放置在正确的位置。如果我错了,请纠正我。

    nginx/1.10.1使用OpenSSL 1 . 0 . 1 f 2014年1月6日启用TLS SNI支持配置参数:-with-cc-opt = '-g-O2-f stack-protector-param = ssp-buffer-size = 4-w format-Werror = format-security-D _ FORTIFY _ SOURCE = 2 '-with-LD-opt = '-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now '-prefix =/usr/share/nginx-conf-path = ' -with-http _ gzip _ static _ module-with-http _ image _ filter _ module = dynamic-with-http _ MP4 _ module-with-http _ random _ index _ module-with-http _ secure _ link _ module-with-http _ sub _ module-with-http _ XSLT _ module = dynamic-with-mail _ SSL _ module-with-stream = dynamic-with-stream _ SSL _ module-add-dynamic-module

  • 共有1个答案

    郭乐湛
    2023-03-14

    您需要在if块之外使用< code>proxy_cookie_path。< code>proxy_cookie_path仅允许在< code>http,server,location中使用。所以你可以在if块内部使用它。

    编辑-1

    如果由于某种原因仍然需要这样做。试试下面的配置

    location /tron/api/v1/ {
      error_page 418 = @xyz_cookie;
    
      recursive_error_pages on;
      proxy_ssl_session_reuse off;
      # End of extra settings
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
      proxy_set_header X-Forwarded-Host $host;
      proxy_set_header X-Forwarded-Server $host;
    
      # End of extra settings
      proxy_set_header X-Scheme $scheme;
    
      if ($cookie_VD_TYPE = "XYZ") {
        return 418;
      }
    
      proxy_pass https://10.132.250.$cookie_ABC/tron/api/v1/$1$is_args$args;
    }
    
    location @xyz_cookie {
      proxy_ssl_session_reuse off;
      # End of extra settings
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
      proxy_set_header X-Forwarded-Host $host;
      proxy_set_header X-Forwarded-Server $host;
    
      # End of extra settings
      proxy_set_header X-Scheme $scheme;
    
      proxy_pass   https://10.132.250.$cookie_XYZ/tron/api/v1/$1$is_args$args;
      proxy_cookie_path      / /abc/xyz/120;
    }
    

    阅读如果是邪恶的,了解更多关于IF的问题

     类似资料:
    • 给出了一个带有express的nodejs应用程序,它通过nginx运行。我正在尝试使用ETag添加缓存支持。 如果没有nginx,如果应用程序被直接调用它的工作。我设置了如果无匹配头,并收到一个304。 对于nginx,响应总是200。 我的Nginx配置: 快车的日志记录。 信息:HTTP GET/app/statusCode=200,url=/app/,connection=upgrade,

    • (索引):2到“wss://xx.xx.xx.xx.xx/ws:8080”的WebSocket连接失败:连接建立错误:NET::err_cert_common_name_invalid 我想这与证书(SSL)有关,但我真的不知道如何解决这个问题! 提前感谢! 当我将xx.xx.xx.xx更改为domain.com时,我会得到一个握手错误代码504。 顺便说一句,我正在通过php(php serve

    • 错误:活动:自2018-04-09周一16:35:28 IST以来失败(结果:退出代码);进程:22654 ExecStart=/usr/sbin/nginx(代码=退出,状态=1/失败)Apr 09 16:35:28 localhost。localdomain systemd[1]:无法启动nginx HTTP和反向代理服务器。

    • 我有一些 在量角器中,我们搜索并找到元素,检查文本是否符合我们的期望,然后对该元素调用。测试在Chrome中运行良好,但在IE中就好像没有点击发生一样。破坏了测试。 IE 11是否支持点击

    • 问题内容: 我注意到less.js在firefox中工作,但在Chrome中不工作,或者是因为我出错了吗? 即使我尝试在Chrome中仍然无法使用,我在某个地方犯了错误吗? 问题答案: 通过您提供的链接: 如果您使用的是Chrome,Less.js浏览器脚本当前将无法使用,并且由于已知的Chrome问题,网页的路径以“file:///”开头。

    • 问题内容: 不仅如此,其他代码也有相同的问题。只是不能使用ImageView。 环境:macOS,IntelliJ 造成原因:java.lang.IllegalArgumentException:无效的URL:无效的URL或找不到资源 问题答案: 该图像构造函数接受一个url作为参数。如果您未在其中添加协议,则它将假定该项目来自类路径。显然,不会出现在您的类路径中。 要从文件而不是类路径中读取,请