高性能的、模块化的 HTTP 代理和缓存服务器,Apache Traffic Server 5.2.0 发布
Apache Traffic Server(ATS或TS)是一个高性能的、模块化的 HTTP 代理和缓存服务器。Traffic Server 最初是 Inktomi 公司的商业产品,该公司在 2003 年被 Yahoo 收购,之后 Traffic Server 一直在 Yahoo 内部使用长达 4 年,直到 2009 年 8 月 Yahoo 向 Apache 软件基金会(ASF)贡献了源代码,并于 2010 年 4 月成为了 ASF 的顶级项目(Top-Level Project)。 Apache Traffic Server 现在是一个开源项目,开发语言为C++。
HTTP 代理服务器是 HTTP 服务器的一种实现,处于客户端(一般为浏览器)与另一个 HTTP 服务器之间(通常指源服务器,Origin Server)。HTTP 代理通常分为正向代理、反向代理和透明代理,我们主要关注的是反向代理(Reverse Proxy, 见下图)反向代理服务器根据明确配置的映射规则来处理用户请求。反向代理服务器通常会设置一个较大的缓存区,服务器处理请求的同时将请求的内容缓存在服务 器本地,当下次用户请求同一个对象时,服务器可直接从缓存区里取出对象,而不用去源服务器去取,起到了加速的效果。另外,配置反向代理的映射规则也能实现 负载均衡的功能。除了 Traffic Server,常见的开源代理服务器还有 Squid,Varnish,Nginx,HAProxy。
该版本包含 bug 修复,新特性和改进,详细介绍请看这里。
下载:http://trafficserver.apache.org/downloads
完整的记录包括:
Sub-task
-
[TS-1476] - static analysis: argument with 'nonnull' attribute passed null
-
[TS-1477] - static analysis: dead store, dead assignment
-
[TS-1478] - static analysis: dead store, dead increment
-
[TS-1479] - static analysis: dead store, dead initialization
-
[TS-1480] - static analysis: logic error, called C++ object pointer is null
-
[TS-1481] - static analysis: logic error, dereference of null pointer
Bug
-
[TS-407] - traffic_server not using proxy.config.syslog_facility
-
[TS-898] - Fix potential problems from coverity scan
-
[TS-1475] - Static analysis: clean up all clang and coverity reports
-
[TS-1535] - FetchSM process_fetch_write should ignore event TS_EVENT_VCONN_WRITE_READY
-
[TS-1570] - remap doesn't reject request whose Host has extra characters after port (like "test.com:80xxx")
-
[TS-2009] - Disallow \0 in all headers
-
[TS-2095] - autoconf warnings related to unordered_map
-
[TS-2883] - core dump in TSFetchCreate()
-
[TS-2938] - Core dump in HttpSM::redirect_request when handling 307
-
[TS-2959] - Compiler warnings from gcc 4.9.1
-
[TS-3020] - Blind Tunnel fake request URL is IPv4 only
-
[TS-3026] - SPDY not forwarding Accept-Encoding headers for Firefox
-
[TS-3035] - Double logging on errored transactions
-
[TS-3039] - OCSP stapling memory leaks
-
[TS-3042] - Fix the static traffic_server build
-
[TS-3048] - Removed hard coded directory in TSPluginDirGet Regresson Test
-
[TS-3051] - Bad if for perror on AIO.cc
-
[TS-3064] - Expose TS_EVENT_VCONN_ACTIVE_TIMEOUT in headers
-
[TS-3065] - Delete the header "Transfer-Encoding" when the error body was set
-
[TS-3066] - Latest master does not compile on OmniOS
-
[TS-3073] - tr-pass: non-http request gets blocked with error message instead of being tunnelled to the origin server
-
[TS-3074] - Regression fails on FreeBSD after TS-2736
-
[TS-3076] - Coverity warning and build error on RHEL6
-
[TS-3081] - ATS doesn't send FIN flag to indicate data complete to the client in some cases..
-
[TS-3083] - Double free of FetchSM
-
[TS-3084] - Forwarding mode breaks iPhone activation (gs.apple.com)
-
[TS-3085] - Large POSTs over (relatively) slower connections failing in ats5
-
[TS-3087] - Flow control can stall at low water mark values
-
[TS-3092] - SSL_CTX_set_timeout should be set even if Server Side Session Cache is disabled
-
[TS-3097] - Reloading SSL certificates crashes
-
[TS-3098] - Fix the ability to configure keep-alive on post to the origin
-
[TS-3105] - Combination of fixes for TS-3084 and TS-3073 causing asserts and segfaults on 5.1 and beyond
-
[TS-3106] - ATS error responses do not flush request body
-
[TS-3109] - Build broken on ubuntu saucy64
-
[TS-3112] - core dump in FetchSM.cc
-
[TS-3120] - Overlapping rank in config.remap when using .include directives
-
[TS-3121] - Seeing garbage SPDY responses sometimes
-
[TS-3125] - SSL ctx is set to a constant allowing for potential inappropriate session reuse.
-
[TS-3129] - Parent proxy configuration does not work for incoming HTTPS requests
-
[TS-3130] - Core dump in Logging
-
[TS-3152] - We offer up H2-14 on current master, even when it's not working / supported
-
[TS-3179] - ats_scoped_fd should not provide boolean operators
-
[TS-3184] - SPDY window_update not triggered correctly..
-
[TS-3188] - Do not set half_close flag for short post on keep_alive client connections
-
[TS-3189] - Do not start reading data on server to user agent tunnel too soon
-
[TS-3190] - Change producer_run() to run a specific producer in more cases
-
[TS-3191] - Confusion with HTTP_TUNNEL_STATIC_PRODUCER
-
[TS-3196] - Core dump when handle event check_inactivity
-
[TS-3199] - HEAD request over SPDY hangs until inactivity timeout
-
[TS-3202] - HTTP Parsing should not allow CTL characters in the method
-
[TS-3205] - ASAN complaints on config reload freeing malloc'ed memory with delete[]
-
[TS-3207] - _xstrdup incorrectly calls ink_strlcpy with zero length strings
-
[TS-3221] - ink_atoi64 return 0 for input of 0..9
-
[TS-3223] - Fix the internal buffer sizing.
-
[TS-3226] - SSL data not read from the socket sometimes causing transactions to timeout
-
[TS-3244] - stats_over_http plugin does not get the optional path argument properly
-
[TS-3248] - 5.2.0 Segmentation fault due to TS-3189
-
[TS-3254] - AdminClient.pm broken in v5.2.0
-
[TS-3257] - possible memory leak in v5.2.0
-
[TS-3261] - possible slow leak in v5.2.0
-
[TS-3262] - Build failure using clang on Fedora 21
-
[TS-3265] - core dump in spdy_prepare_status_response_and_clean_request
-
[TS-3274] - Cache fixup can cause race condition in ram cache.
-
[TS-3276] - Cache incompatible between 5.0.1 and 5.2.0
-
[TS-3280] - Segfault in new freelist bulk freeing
Improvement
-
[TS-1120] - Use ink_zero / ats_zero instead of calling memset when zeroing a variable or member.
-
[TS-2119] - mysql_remap plugin is in the source tree but does not build
-
[TS-2289] - Only support AIO_MODE_THREAD and AIO_MODE_NATIVE
-
[TS-2561] - Remove app-template from examples
-
[TS-2945] - Balancer plugin forward to other port than 80
-
[TS-2989] - ats_speed: implement In-Place-Resource-Optimization flow
-
[TS-3006] - Augment SNI callback processing
-
[TS-3023] - Support space separated values in inline plugin parameters in remap rules
-
[TS-3024] - Build with OPENSSL_NO_SSL_INTERN
-
[TS-3033] - Reimplement management protocol
-
[TS-3034] - Unanchored traffic_line metrics match
-
[TS-3041] - Add a way to show the installation layout
-
[TS-3044] - Linux native AIO should use eventfd if available to signal thread
-
[TS-3047] - The Makefile.am for traffic_top is inconsistent with the rest of the build system
-
[TS-3054] - Premature origin connection reset: flush partial data received to client before closing client connection
-
[TS-3068] - Remove usage of Boost
-
[TS-3069] - Add mysql_remap to automake
-
[TS-3070] - Consistent span configuration
-
[TS-3071] - Emit JSON numbers in stats_over_http
-
[TS-3093] - Add additional functionality to IpAddr.
-
[TS-3103] - Improve privilege elevation
-
[TS-3114] - Refactor IpMap to make the RB tree a shared data structure
-
[TS-3116] - Add support for tracking the use of the ioBuffers
-
[TS-3131] - Revise the certificates loading procedure
-
[TS-3135] - Disable SSLv3 by default
-
[TS-3143] - Convert DFA class to Regex and add support for JIT
-
[TS-3147] - Improvements to ESI plugin first byte flush feature
-
[TS-3150] - atscppapi should support streaming HTTP fetch
-
[TS-3154] - Add proxy port to access log
-
[TS-3155] - Add a value test method to the MIMEField class
-
[TS-3156] - Mutex[Try]Lock bool() operator change and unused API removal
-
[TS-3157] - standardize --help and --version options
-
[TS-3171] - Tidy up Tokenizer interface
-
[TS-3178] - ProxyAllocator improvements
-
[TS-3185] - Increase the default spdy initial_window_size_in setting to 1 mb
-
[TS-3194] - Remove unused proxy.config.plugin.plugin_mgmt_dir
-
[TS-3233] - Add drain option to restart API
New Feature
-
[TS-1432] - API is missing TSMutexDestroy
-
[TS-2314] - New config to allow unsatifiable Range: request to go straight to Origin
-
[TS-2417] - Add forward secrecy support with DHE (SSL related)
-
[TS-2503] - Dynamic TLS record size tuning
-
[TS-2682] - Add per remap configuration / activation to background_fetch
-
[TS-2683] - Add some control for which content to activate the background_fetch plugin
-
[TS-2955] - Support variable expansion in set-redirect operator for header_rewrite
-
[TS-2956] - Add ssl_pre_handshake hook for better plugin access to SSL handling and allow for combination of blind tunnel and tunnel proxying
-
[TS-3059] - Logging API is missing a TSTextLogObjectRollingSizeMbSet()
-
[TS-3080] - OpenSSL implementation of TLS session cache is very slow.
-
[TS-3101] - Add TSHttpHdrHostGet
-
[TS-3108] - Add port matching condition to header_rewrite
-
[TS-3115] - Add server response time field in custom logging fields
-
[TS-3119] - Add option to support SO_LINGER to origin server
-
[TS-3127] - Add config for OpenSSL session cache auto clear
-
[TS-3139] - Add script to "replicate" a response across a set of proxy caches (using PUSH)
-
[TS-3145] - traffic_line backtrace support
-
[TS-3149] - Move Via decoder out of traffic_line, and make a separate traffic_via tool
-
[TS-3192] - Implement proxy.config.config_dir
-
[TS-3195] - Improved crash logging