Specify a unix domain socket path.
-Examples
-========
+Configuration
+=============
+
+Currently it's the easiest to use the RADOS Gateway with Apache and mod_fastcgi::
-An apache example configuration for using the RADOS gateway::
+ FastCgiExternalServer /var/www/s3gw.fcgi -socket /tmp/radosgw.sock
<VirtualHost *:80>
ServerName rgw.example1.com
ServerAlias rgw
ServerAdmin webmaster@example1.com
- DocumentRoot /var/www/web1/web/
+ DocumentRoot /var/www
- #turn engine on
RewriteEngine On
-
- #following is important for RGW/rados
RewriteRule ^/([a-zA-Z0-9-_.]*)([/]?.*) /s3gw.fcgi?page=$1¶ms=$2&%{QUERY_STRING} [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
- <IfModule mod_fcgid.c>
- SuexecUserGroup web1 web1
- <Directory /var/www/web1/web/>
+ <IfModule mod_fastcgi.c>
+ <Directory /var/www>
Options +ExecCGI
AllowOverride All
- SetHandler fcgid-script
- FCGIWrapper /var/www/fcgi-scripts/web1/radosgw .fcgi
+ SetHandler fastcgi-script
Order allow,deny
Allow from all
AuthBasicAuthoritative Off
</IfModule>
AllowEncodedSlashes On
-
- # ErrorLog /var/log/apache2/error.log
- # CustomLog /var/log/apache2/access.log combined
ServerSignature Off
-
</VirtualHost>
-And the corresponding radosgw script::
+And the corresponding radosgw script (/var/www/s3gw.fcgi)::
#!/bin/sh
- exec /usr/bin/radosgw -c /etc/ceph.conf
+ exec /usr/bin/radosgw -c /etc/ceph/ceph.conf -n client.radosgw.gateway
+
+The radosgw daemon is a standalone process which needs a configuration
+section in the ceph.conf The section name should start with
+'client.radosgw.' as specified in /etc/init.d/radosgw::
+
+ [client.radosgw.gateway]
+ host = gateway
+ keyring = /etc/ceph/keyring.radosgw.gateway
+ rgw socket path = /tmp/radosgw.sock
+
+You will also have to generate a key for the radosgw to use for
+authentication with the cluster::
+
+ ceph-authtool -C -n client.radosgw.gateway --gen-key /etc/ceph/keyring.radosgw.gateway
+ ceph-authtool -n client.radosgw.gateway --cap mon 'allow r' --cap osd 'allow rwx' --cap mds 'allow' /etc/ceph/keyring.radosgw.gateway
-By default radosgw will run as single threaded and its execution will
-be controlled by the fastcgi process manager. An alternative way to
-run it would be by specifying (along the lines of) the following in
-the apache config::
+And add the key to the auth entries::
- FastCgiExternalServer /var/www/web1/web/s3gw.fcgi -socket /tmp/.radosgw.sock
+ ceph auth add client.radosgw.gateway --in-file=keyring.radosgw.gateway
-and specify a unix domain socket path (either by passing a command
-line option, or through ceph.conf).
+Now you can start Apache and the radosgw daemon::
+ /etc/init.d/apache2 start
+ /etc/init.d/radosgw start
Availability
============