• 2xshu
    2019-06-26
    请教个问题,如何获取proxy_pass返回的body呢?

    作者回复: 1、proxy_pass是http反向代理,它被设计的目的不包括在内存中处理上游返回包体。所以直接获取包体比较困难,可以使用proxy_buffering、proxy_temp_path等指令将响应body保存到文件,去读取文件,限制较多。
    2、proxy_pass使用upstream实现反向代理,而upstream配合subrequest提供在内存中读取上游body的可能性。
    3、如果实时处理上游body,使用openresty的cosocket是个更好的选择。

    
     3
  • 阿dai
    2019-02-12
    在做sentry升级过程中有这样一种情况,某个项目无法更改原有dsn(https://1834a947c3d545998d46da:29dc1053b9004d388a462cd30d43ff46@sentry.live.me/32),升级完成后想通过nginx将该项目的所有数据重定向到https://f13667840efd4wkixj9c721fbaa60c7423@sentry-new.live.club/13。原有url
     sentry.live.me/servers/project1 新的url地址为 sentry-new.live.club/children/project1。
    这个该怎么处理呢?
    展开

    作者回复: 若只改URL的前缀,后缀不动,则可以使用proxy_pass中domain后加URL的方法,参见第89课。
    如果需要改URL后缀,可以使用rewrite先改URL,再使用反向代理,参见第52课。
    从你的描述看似乎不改后缀,可以考虑第1种办法。

    
     2
  • Adam
    2019-01-10
    老师,有个疑问,上游设置了“X-Accel-Limit-Rate”这个头部了,为什么就可以起到限速效果?是因为代理接收到这个头部后会自动设置limit rate的值 吗?

    作者回复: 没错!这个头部是Nginx特意为上游准备的。

    
     2
  • 阳光梦
    2019-06-22
    老师,请教下proxy_next_upstream 当是ip_hash 调度时候应该不生效吧?谢谢

    作者回复: 每当发生符合next_upstream错误时,重连时都必须由相应的负载均衡模块重新选择,而hash类每次都会选中同一台server

    
     1
  • 见习勇者
    2019-05-09
    老师,有个问题希望请教一下,我们的nginx服务错误日志有时会出现这样的错误信息: [error] 31653#0: *15325688 checksum not equal: read[28549443] should[63964] while reading response header from upstream, client: 139.199.77.235, logid: 1831677657 。。。。,自己无法复现,个人猜测是tcp层的校验出了问题?会影响客户端实际获取数据吗?

    作者回复: TCP校验错误操作系统不会给到Nginx进程的,这里日志上看应该是Nginx在接收HTTP或者其他协议的头部时认为checksum出问题,我猜测你们的应用层协议可能有checksum这一步操作。当然对你们的环境没有了解,无法进一步判断

    
    
  • Panda
    2019-01-24
    proxy_pass_header 和 proxy_hide_header 就可以很灵活的 控制 上游返回的header 很棒
    
    
我们在线,来聊聊吧