diff --git a/doc/man/8/radosgw.rst b/doc/man/8/radosgw.rst
index 542a792c7dd..129c0d131a4 100644
--- a/doc/man/8/radosgw.rst
+++ b/doc/man/8/radosgw.rst
@@ -13,7 +13,7 @@ Synopsis
Description
===========
-**radosgw** is an HTTP REST gateway for the RADOS object store, a part
+:program:`radosgw` is an HTTP REST gateway for the RADOS object store, a part
of the Ceph distributed storage system. It is implemented as a FastCGI
module using libfcgi, and can be used in conjunction with any FastCGI
capable web server.
@@ -24,13 +24,12 @@ Options
.. option:: -c ceph.conf, --conf=ceph.conf
- Use *ceph.conf* configuration file instead of the default
+ Use ``ceph.conf`` configuration file instead of the default
``/etc/ceph/ceph.conf`` to determine monitor addresses during startup.
.. option:: -m monaddress[:port]
- Connect to specified monitor (instead of looking through
- ``ceph.conf``).
+ Connect to specified monitor (instead of looking through ``ceph.conf``).
.. option:: -i ID, --id ID
@@ -68,69 +67,96 @@ Options
Configuration
=============
-Currently it's the easiest to use the RADOS Gateway with Apache and mod_fastcgi::
+Earlier RADOS Gateway had to configured with ``Apache`` and ``mod_fastcgi``.
+Now, ``mod_proxy_fcgi`` module is used instead of ``mod_fastcgi`` as the later
+doesn't come under a free license. ``mod_proxy_fcgi`` works differently than a
+traditional FastCGI module. This module requires the service of ``mod_proxy``
+which provides support for the FastCGI protocol. So, to be able to handle
+FastCGI protocol, both ``mod_proxy`` and ``mod_proxy_fcgi`` have to be present
+in the server. Unlike ``mod_fastcgi``, ``mod_proxy_fcgi`` cannot start the
+application process. Some platforms have ``fcgistarter`` for that purpose.
+However, external launching of application or process management may be available
+in the FastCGI application framework in use.
- FastCgiExternalServer /var/www/s3gw.fcgi -socket /tmp/radosgw.sock
+``Apache`` can be configured in a way that enables ``mod_proxy_fcgi`` to be used
+with localhost tcp or through unix domain socket. ``mod_proxy_fcgi`` that doesn't
+support unix domain socket such as the ones in Apache 2.2 and earlier versions of
+Apache 2.4, needs to be configured for use with localhost tcp.
-
- ServerName rgw.example1.com
- ServerAlias rgw
- ServerAdmin webmaster@example1.com
- DocumentRoot /var/www
+#. Modify ``/etc/ceph/ceph.conf`` file to make radosgw use tcp instead of unix
+ domain socket. ::
- RewriteEngine On
- RewriteRule ^/([a-zA-Z0-9-_.]*)([/]?.*) /s3gw.fcgi?page=$1¶ms=$2&%{QUERY_STRING} [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
+ [client.radosgw.gateway]
+ host = gateway
+ keyring = /etc/ceph/keyring.radosgw.gateway
-
-
- Options +ExecCGI
- AllowOverride All
- SetHandler fastcgi-script
- Order allow,deny
- Allow from all
- AuthBasicAuthoritative Off
-
-
+ ; ********
+ ; tcp fastcgi
+ rgw socket path = ""
+ rgw frontends = fastcgi socket_port=9000 socket_host=0.0.0.0
- AllowEncodedSlashes On
- ServerSignature Off
-
+#. Modify Apache's configuration file so that ``mod_proxy_fcgi`` can be used
+ with localhost tcp. ::
-And the corresponding radosgw script (/var/www/s3gw.fcgi)::
+
+ ServerName localhost
+ DocumentRoot /var/www/html
- #!/bin/sh
- exec /usr/bin/radosgw -c /etc/ceph/ceph.conf -n client.radosgw.gateway
+ ErrorLog ${APACHE_LOG_DIR}/error.log
+ CustomLog ${APACHE_LOG_DIR}/access.log combined
-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::
+ LogLevel debug
- [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::
+ RewriteEngine On
- ceph-authtool -C -n client.radosgw.gateway --gen-key /etc/ceph/keyring.radosgw.gateway
- ceph-authtool -n client.radosgw.gateway --cap mon 'allow rw' --cap osd 'allow rwx' /etc/ceph/keyring.radosgw.gateway
+ RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
-And add the key to the auth entries::
+ SetEnv proxy-nokeepalive 1
- ceph auth add client.radosgw.gateway --in-file=keyring.radosgw.gateway
+ ProxyPass / fcgi://127.0.01:9000/
+
-Now you can start Apache and the radosgw daemon::
+#. Modify Apache's configuration file so that ``mod_proxy_fcgi`` can be used
+ through unix domain socket. ::
- /etc/init.d/apache2 start
- /etc/init.d/radosgw start
+
+ ServerName localhost
+ DocumentRoot /var/www/html
+
+ ErrorLog ${APACHE_LOG_DIR}/error.log
+ CustomLog ${APACHE_LOG_DIR}/access.log combined
+
+ LogLevel debug
+
+
+ RewriteEngine On
+
+ RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
+
+ ProxyPass / unix:///tmp/.radosgw.sock|fcgi://localhost:9000/ disablereuse=On
+
+
+#. Generate a key for 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 rw' --cap osd 'allow rwx' /etc/ceph/keyring.radosgw.gateway
+
+#. Add the key to the auth entries. ::
+
+ ceph auth add client.radosgw.gateway --in-file=keyring.radosgw.gateway
+
+#. Start Apache and radosgw. ::
+
+ /etc/init.d/apache2 start
+ /etc/init.d/radosgw start
Usage Logging
=============
-The **radosgw** maintains an asynchronous usage log. It accumulates
+:program:`radosgw` maintains an asynchronous usage log. It accumulates
statistics about user operations and flushes it periodically. The
-logs can be accessed and managed through **radosgw-admin**.
+logs can be accessed and managed through :program:`radosgw-admin`.
The information that is being logged contains total data transfer,
total operations, and total successful operations. The data is being
@@ -159,9 +185,9 @@ synchronous flush.
Availability
============
-**radosgw** is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer
-to the Ceph documentation at http://ceph.com/docs for more
-information.
+:program:`radosgw` is part of Ceph, a massively scalable, open-source, distributed
+storage system. Please refer to the Ceph documentation at http://ceph.com/docs for
+more information.
See also