作者回复: 1、proxy_pass是http反向代理,它被设计的目的不包括在内存中处理上游返回包体。所以直接获取包体比较困难,可以使用proxy_buffering、proxy_temp_path等指令将响应body保存到文件,去读取文件,限制较多。
2、proxy_pass使用upstream实现反向代理,而upstream配合subrequest提供在内存中读取上游body的可能性。
3、如果实时处理上游body,使用openresty的cosocket是个更好的选择。
作者回复: 若只改URL的前缀,后缀不动,则可以使用proxy_pass中domain后加URL的方法,参见第89课。
如果需要改URL后缀,可以使用rewrite先改URL,再使用反向代理,参见第52课。
从你的描述看似乎不改后缀,可以考虑第1种办法。
作者回复: 没错!这个头部是Nginx特意为上游准备的。
作者回复: 每当发生符合next_upstream错误时,重连时都必须由相应的负载均衡模块重新选择,而hash类每次都会选中同一台server
作者回复: TCP校验错误操作系统不会给到Nginx进程的,这里日志上看应该是Nginx在接收HTTP或者其他协议的头部时认为checksum出问题,我猜测你们的应用层协议可能有checksum这一步操作。当然对你们的环境没有了解,无法进一步判断