使用proxy_pass的Nginx位置不工作

jvlzgdj9  于 2023-11-17  发布在  Nginx
关注(0)|答案(1)|浏览(208)

我正在执行给定的请求http://example.com/my/route/bar,请求体有5M,所以想使用client_max_body_size 0M作为路由/my/route/*。但是当我在nginx中有proxy_pass时,我很难让nginx使用我的自定义位置。
在第一个场景中,我得到了一个'413 Request Entity Too Large'响应,这意味着第一个位置不匹配,并且nginx正在使用默认位置。

  1. location /my/route {
  2. client_max_body_size 0M;
  3. proxy_buffer_size 128k;
  4. proxy_buffers 4 256k;
  5. proxy_busy_buffers_size 256k;
  6. proxy_set_header X-Forwarded-Proto https;
  7. proxy_set_header X-Real-IP $remote_addr;
  8. proxy_set_header X-Forwarded-For $remote_addr;
  9. proxy_set_header Host $host;
  10. proxy_pass http://fabio:9999;
  11. }
  12. location / {
  13. proxy_buffer_size 128k;
  14. proxy_buffers 4 256k;
  15. proxy_busy_buffers_size 256k;
  16. proxy_set_header X-Forwarded-Proto https;
  17. proxy_set_header X-Real-IP $remote_addr;
  18. proxy_set_header X-Forwarded-For $remote_addr;
  19. proxy_set_header Host $host;
  20. proxy_pass http://fabio:9999;
  21. }

字符串
但是如果使用以下场景(将proxy_pass http://fabio:9999;更改为return 404;),则请求返回404,这是预期的响应。

  1. location /my/route {
  2. client_max_body_size 0M;
  3. proxy_buffer_size 128k;
  4. proxy_buffers 4 256k;
  5. proxy_busy_buffers_size 256k;
  6. proxy_set_header X-Forwarded-Proto https;
  7. proxy_set_header X-Real-IP $remote_addr;
  8. proxy_set_header X-Forwarded-For $remote_addr;
  9. proxy_set_header Host $host;
  10. return 404;
  11. }
  12. location / {
  13. proxy_buffer_size 128k;
  14. proxy_buffers 4 256k;
  15. proxy_busy_buffers_size 256k;
  16. proxy_set_header X-Forwarded-Proto https;
  17. proxy_set_header X-Real-IP $remote_addr;
  18. proxy_set_header X-Forwarded-For $remote_addr;
  19. proxy_set_header Host $host;
  20. proxy_pass http://fabio:9999;
  21. }


我在第一个场景中做错了什么?我需要使用proxy_pass匹配location /my/route

xyhw6mcr

xyhw6mcr1#

您可以将第一个位置嵌套到/中。然后在嵌套的位置块中设置特定的配置。这里有一个示例(尚未测试):

  1. location / {
  2. location /my/route {
  3. client_max_body_size 0M;
  4. }
  5. proxy_buffer_size 128k;
  6. proxy_buffers 4 256k;
  7. proxy_busy_buffers_size 256k;
  8. proxy_set_header X-Forwarded-Proto https;
  9. proxy_set_header X-Real-IP $remote_addr;
  10. proxy_set_header X-Forwarded-For $remote_addr;
  11. proxy_set_header Host $host;
  12. proxy_pass http://fabio:9999;
  13. }

字符串

展开查看全部

相关问题