Apache Sucks, Nginx Sucks, Tengine Sucks… The new jam you ask? CIVETWEB!
It’s built into radosgw and is easily enabled, this config below will get you started with civetweb + haproxy.
[client.radosgw.gateway] host = s3 rgw admin entry = ceph-admin-api rgw dns name = s3.domain.com rgw enable usage log = true rgw enable ops log = false keyring = /etc/ceph/ceph.client.radosgw.keyring log file = /var/log/radosgw/client.radosgw.s3.log rgw_frontends = civetweb port=7480
And your haproxy config!
frontend s3 bind *:80 bind *:443 ssl crt /etc/ssl/certs/s3.domain.com.pem mode http #ACL for admin api acl network_allowed src 10.0.1.5 acl restricted_page path_beg /ceph-admin-api block if restricted_page !network_allowed #Backend RadosGW CivetWeb default_backend radosgw backend radosgw mode http balance roundrobin option forwardfor option httpchk HEAD / HTTP/1.1\r\nHost:localhost server s3-dev localhost:7480