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 forendpoint
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 an
s
suffix like443s
. To bind a specific IPv4 or IPv6address, use the formaddress:port
. Multiple endpointscan either be separated by+
as in127.0.0.1:8000+443s
,or by providing multiple options as inport=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:
- [client.rgw.gateway-node1]
- 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