v.20.10Improvement

Workaround for S3 URL Path Issues with Nginx Proxy

Workaround for use S3 with nginx server as proxy. Nginx currenty does not accept urls with empty path like http://domain.com?delete, but vanilla aws-sdk-cpp produces this kind of urls. This commit uses patched aws-sdk-cpp version, which makes urls with "/" as path in this cases, like http://domain.com/?delete. #16813 (ianton-ru).
ClickHouse introduces a workaround for using S3 with nginx proxy by patching the AWS SDK to generate URLs with a "/" path instead of empty paths.

Why it matters

This feature addresses the issue where nginx does not accept URLs with an empty path (e.g., http://domain.com?delete), which are generated by the vanilla aws-sdk-cpp. By modifying the SDK to produce URLs with a slash / as the path (e.g., http://domain.com/?delete), it ensures compatibility and smooth proxying through nginx when interacting with S3.

How to use it

The fix is applied internally by using a patched version of aws-sdk-cpp in ClickHouse, so users do not need to change their configurations. When using S3 through an nginx proxy, the URLs will automatically be compatible with nginx without further user intervention.