So if I have Apache 2.4.9+, would I use
    ProxyPass / unix:///tmp/.radosgw.sock|fcgi://localhost:9000/
and in ceph.conf use
    rgw socket path = /tmp/.radosgw.sock

If so, how does the radosgw process know about port 9000?
Or do I need a "rgw frontends" statement to specify that?

-- Tom

-----Original Message-----
From: Yehuda Sadeh-Weinraub [mailto:yeh...@redhat.com] 
Sent: Wednesday, February 11, 2015 7:10 PM
To: Deneau, Tom
Cc: ceph-devel@vger.kernel.org
Subject: Re: using radosgw with mod_proxy_fcgi



----- Original Message -----
> From: "Tom Deneau" <tom.den...@amd.com>
> To: ceph-devel@vger.kernel.org
> Sent: Wednesday, February 11, 2015 4:21:46 PM
> Subject: using radosgw with mod_proxy_fcgi
> 
> I am a Ceph novice and have the rados and rbd setups working and would 
> like to use the radosgw stack.
> 
> I am running on a platform (aarch64) for which there are no pre-built 
> binaries of the ceph patched apache and the ceph patched mod_fastcgi.  
> But since I gather from the mail lists that the future is just to use 
> mod_proxy_fcgi and since my apache install has mod_proxy_fcgi build in 
> already that seems like the way to go.
> 
> I realize the documentation to explain exactly how to set things up 
> with mod_proxy_fcgi is still in the works but if there is any 
> preliminary documentation on this, I'd be glad to try it out.
> 

That's the apache site config that I was using:

<VirtualHost *:80>
    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]

    # RewriteRule ^/(.*) /?%{QUERY_STRING} 
[E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

    SetEnv proxy-nokeepalive 1

    ProxyPass / fcgi://127.0.01:9000/
    #ProxyPass / unix:///tmp/.radosgw.sock|fcgi://localhost:9000/
</VirtualHost>

Note that there are two options here, and it really depends your apache 
version. For vanilla apache 2.4.8+ (or maybe 2.4.7+) you can use the regular 
unix domain socket setup (as described in the docs), just modify the path 
appropriately. For older apaches (2.4.0+) you need to use tcp for fastcgi, and 
that requires somewhat different rgw configuration, e.g. have the following in 
your ceph.conf:

        rgw frontends = fastcgi socket_port=9000 socket_host=0.0.0.0

For apache 2.2 there's no mod-proxy-fcgi out of the box. I did backport that 
module, and you can find it here: https://github.com/ceph/mod-proxy-fcgi, but 
you'll need to compile it yourself at this point.

Note that mod-proxy-fcgi does not support 100-continue, so you'll need to add 
the following to your ceph.conf:

        rgw print continue = false

Yehuda


Reply via email to