HTTP Frontends

The Ceph Object Gateway supports two embedded HTTP frontend librariesthat can be configured with rgw_frontends. See Config Referencefor details about the syntax.

Beast

New in version Mimic.

The beast frontend uses the Boost.Beast library for HTTP parsingand the Boost.Asio library for asynchronous network i/o.

Options

port and ssl_port

  • Description
  • Sets the ipv4 & ipv6 listening port number. Can be specified multipletimes as in port=80 port=8000.

  • Type

  • Integer

  • Default

  • 80

endpoint and ssl_endpoint

  • Description
  • Sets the listening address in the form address[:port], wherethe address is an IPv4 address string in dotted decimal form, oran IPv6 address in hexadecimal notation surrounded by squarebrackets. Specifying a IPv6 endpoint would listen to v6 only. Theoptional port defaults to 80 for endpoint and 443 forssl_endpoint. Can be specified multiple times as inendpoint=[::1] endpoint=192.168.0.100:8000.

  • Type

  • Integer

  • Default

  • None

ssl_certificate

  • Description
  • Path to the SSL certificate file used for SSL-enabled endpoints.

  • Type

  • String

  • Default

  • None

ssl_private_key

  • Description
  • Optional path to the private key file used for SSL-enabledendpoints. If one is not given, the ssl_certificate fileis used as the private key.

  • Type

  • String

  • Default

  • None

tcp_nodelay

  • Description
  • If set the socket option will disable Nagle’s algorithm onthe connection which means that packets will be sent as soonas possible instead of waiting for a full buffer or timeout to occur.

1 Disable Nagel’s algorithm for all sockets.

0 Keep the default: Nagel’s algorithm enabled.

  • Type
  • Integer (0 or 1)

  • Default

  • 0

Civetweb

New in version Firefly.

The civetweb frontend uses the Civetweb HTTP library, which is afork of Mongoose.

Options

port

  • Description
  • Sets the listening port number. For SSL-enabled ports, add ans suffix like 443s. To bind a specific IPv4 or IPv6address, use the form address:port. Multiple endpointscan either be separated by + as in 127.0.0.1:8000+443s,or by providing multiple options as in port=8000 port=443s.

  • Type

  • String

  • Default

  • 7480

num_threads

  • Description
  • Sets the number of threads spawned by Civetweb to handleincoming HTTP connections. This effectively limits the numberof concurrent connections that the frontend can service.

  • Type

  • Integer

  • Default

  • rgw_thread_pool_size

request_timeout_ms

  • Description
  • The amount of time in milliseconds that Civetweb will waitfor more incoming data before giving up.

  • Type

  • Integer

  • Default

  • 30000

ssl_certificate

  • Description
  • Path to the SSL certificate file used for SSL-enabled ports.

  • Type

  • String

  • Default

  • None

access_log_file

  • Description
  • Path to a file for access logs. Either full path, or relativeto the current working directory. If absent (default), thenaccesses are not logged.

  • Type

  • String

  • Default

  • EMPTY

error_log_file

  • Description
  • Path to a file for error logs. Either full path, or relativeto the current working directory. If absent (default), thenerrors are not logged.

  • Type

  • String

  • Default

  • EMPTY

The following is an example of the /etc/ceph/ceph.conf file with some of these options set:

  1. [client.rgw.gateway-node1]
  2. rgw_frontends = civetweb request_timeout_ms=30000 error_log_file=/var/log/radosgw/civetweb.error.log access_log_file=/var/log/radosgw/civetweb.access.log

A complete list of supported options can be found in the Civetweb User Manual.

Generic Options

Some frontend options are generic and supported by all frontends:

prefix

  • Description
  • A prefix string that is inserted into the URI of allrequests. For example, a swift-only frontend could supplya uri prefix of /swift.

  • Type

  • String

  • Default

  • None