Hi, there's a nice nginx config for loadbalancing a riak cluster at http://rigelgroupllc.com/wp/blog/using-nginx-as-a-front-end-for-riak
Personally, even with that in place I wouldn't open those ports up to the public without some access control system in front of it :). Unless you're doing performance testing, you could do a port forward through ssh to either your nginx machine or one of your riak machines: ssh -L 8888:localhost:80 u...@your.nginx.machine.com and then open http://localhost:8888 in your browser. Of course you'll have to change the :80 part above to your riak http port if you're connecting to a riak machine instead. Sven On Dec 2, 2010, at 5:43 AM, Andrew Stone wrote: > I second that actually and should have put it in my initial response. > > -Andrew > > On Wed, Dec 1, 2010 at 10:33 PM, Alexander Sicular <sicul...@gmail.com> wrote: > Testing aside, I would not bind a production riak to an external > interface. The recommended method is to access riak via an > intermediary like nginx. > > -alexander > > On 2010-12-01, Andrew Stone <andrew.j.ston...@gmail.com> wrote: > > Hi Stefan, > > > > You need to configure Riak to listen on the right interface. You are trying > > to hit it from 127.0.0.1 which is only available from the local machine. > > > > If you set web_ip to 0.0.0.0 in app.config for riak_core it will listen on > > all interfaces. Then you can try to hit it with a curl remotely using > > myhost.com from your browser. > > > > -Andrew > > > > On Wed, Dec 1, 2010 at 9:27 PM, Stefan Scott Alexander < > > stefanscottal...@gmail.com> wrote: > > > >> Hi - > >> > >> SUMMARY: > >> This may be a silly question but... after installing Riak via ssh, can I > >> (or should I) test *remotely* it from a browser? > >> > >> I'm very excited about being able to learn how to use MapReduce with Riak. > >> > >> I installed Riak on my remote VPS server (running Debian 5.0 Lenny) - via > >> Putty & SSH on my Windows laptop. > >> > >> So... if I PUT some data into Riak using curl, it seems to show up. > >> > >> But I can't see it in my browser if I go to my server, eg: > >> > >> http://myhost.com/riak/images/img001.jpg > >> > >> returns "Error 101" - webpage not available. > >> > >> Of course, since my 3 nodes are all at 127.0.0.1, then maybe I *shouldn't* > >> be able to access them remotely from a browser. > >> > >> (By the way, I did open up my firewall on ports 8091, 8092, and 8093 - > >> incoming and outgoing). > >> > >> Anyways... I was just wondering if anyone had any pointers. > >> > >> +++++ > >> > >> DETAILS: > >> > >> (0) I followed the steps here: > >> > >> https://wiki.basho.com/display/RIAK/Building+a+Development+Environment > >> > >> and everything worked fine. > >> > >> > >> (1) I ran a test: > >> > >> curl -H "Accept: text/plain" http://127.0.0.1:8091/stats > >> > >> and got the output: > >> > >> curl -H "Accept: text/plain" http://127.0.0.1:8091/stats > >> { > >> "vnode_gets": 0, > >> "vnode_puts": 0, > >> "read_repairs": 0, > >> "vnode_gets_total": 2, > >> "vnode_puts_total": 1, > >> "node_gets": 0, > >> "node_gets_total": 2, > >> "node_get_fsm_time_mean": "undefined", > >> "node_get_fsm_time_median": "undefined", > >> "node_get_fsm_time_95": "undefined", > >> "node_get_fsm_time_99": "undefined", > >> "node_get_fsm_time_100": "undefined", > >> "node_puts": 0, > >> "node_puts_total": 1, > >> "node_put_fsm_time_mean": "undefined", > >> "node_put_fsm_time_median": "undefined", > >> "node_put_fsm_time_95": "undefined", > >> "node_put_fsm_time_99": "undefined", > >> "node_put_fsm_time_100": "undefined", > >> "read_repairs_total": 0, > >> "cpu_nprocs": 291, > >> "cpu_avg1": 0, > >> "cpu_avg5": 0, > >> "cpu_avg15": 0, > >> "mem_total": 537100288, > >> "mem_allocated": 520372224, > >> "nodename": "d...@127.0.0.1", > >> "connected_nodes": [ > >> "d...@127.0.0.1", > >> "d...@127.0.0.1" > >> ], > >> "sys_driver_version": "1.5", > >> "sys_global_heaps_size": 0, > >> "sys_heap_type": "private", > >> "sys_logical_processors": 2, > >> "sys_otp_release": "R14B", > >> "sys_process_count": 155, > >> "sys_smp_support": true, > >> "sys_system_version": "Erlang R14B (erts-5.8.1) [source] [smp:2:2] > >> [rq:2] [async-threads:64] [kernel-poll:true]", > >> "sys_system_architecture": "i686-pc-linux-gnu", > >> "sys_threads_enabled": true, > >> "sys_thread_pool_size": 64, > >> "sys_wordsize": 4, > >> "ring_members": [ > >> "d...@127.0.0.1", > >> "d...@127.0.0.1", > >> "d...@127.0.0.1" > >> ], > >> "ring_num_partitions": 64, > >> "ring_ownership": "[{'d...@127.0.0.1',21},{'d...@127.0.0.1',21},{' > >> d...@127.0.0.1',22}]", > >> "ring_creation_size": 64, > >> "storage_backend": "riak_kv_bitcask_backend", > >> "pbc_connects_total": 0, > >> "pbc_connects": 0, > >> "pbc_active": 0, > >> "riak_err_version": "0.1.0", > >> "runtime_tools_version": "1.8.4.1", > >> "luwak_version": "1.0", > >> "skerl_version": "0.1", > >> "riak_kv_version": "0.13.0", > >> "riak_core_version": "0.13.0", > >> "luke_version": "0.2.2", > >> "erlang_js_version": "0.4.1", > >> "bitcask_version": "1.1.4", > >> "mochiweb_version": "1.7.1", > >> "webmachine_version": "1.7.3", > >> "crypto_version": "2.0.1", > >> "os_mon_version": "2.2.5", > >> "sasl_version": "2.1.9.2", > >> "stdlib_version": "1.17.1", > >> "kernel_version": "2.14.1" > >> > >> So that looked good. > >> > >> > >> (2) To do a test involving an image, I copied an image (myimg.jpg) into my > >> current directory, and then PUT the image into Riak (at > >> riak/images/img001.jpg) using curl: > >> > >> curl -X PUT HTTP://127.0.0.1:8091/riak/images/img001.jpg -H "Content-type: > >> image/jpeg" --data-binary @myimg.jpg > >> > >> Now the image seems to be stored properly in Riak, because it seems that I > >> can GET it with curl: > >> > >> curl -v http://127.0.0.1:8091/riak/images/img001.jpg > >> > >> (This sends a bunch of garbled text to my Putty/SSH window. I assume this > >> means "success" because it's just the binary data of the jpg file.) > >> > >> > >> (3) I also PUT some text, and it seems to work: > >> > >> curl -v -d 'this is a test' -H "Content-Type: text/plain" > >> http://127.0.0.1:8091/riak/test > >> > >> * About to connect() to 127.0.0.1 port 8091 (#0) > >> * Trying 127.0.0.1... connected > >> * Connected to 127.0.0.1 (127.0.0.1) port 8091 (#0) > >> > POST /riak/test HTTP/1.1 > >> > User-Agent: curl/7.18.2 (i486-pc-linux-gnu) libcurl/7.18.2 > >> > OpenSSL/0.9.8g > >> zlib/1.2.3.3 libidn/1.8 libssh2/0.18 > >> > Host: 127.0.0.1:8091 > >> > Accept: */* > >> > Content-Type: text/plain > >> > Content-Length: 14 > >> > > >> < HTTP/1.1 201 Created > >> < Vary: Accept-Encoding > >> < Server: MochiWeb/1.1 WebMachine/1.7.3 (participate in the frantic) > >> < Location: /riak/test/QTPs0B1zeu9I1WXtJnaAJpQyOee > >> < Date: Thu, 02 Dec 2010 02:12:27 GMT > >> < Content-Type: application/json > >> < Content-Length: 0 > >> < > >> * Connection #0 to host 127.0.0.1 left intact > >> * Closing connection #0 > >> > >> Then I GET the test (using the location key generated above): > >> > >> curl -v http://127.0.0.1:8091/riak/test/QTPs0B1zeu9I1WXtJnaAJpQyOee > >> > >> * About to connect() to 127.0.0.1 port 8091 (#0) > >> * Trying 127.0.0.1... connected > >> * Connected to 127.0.0.1 (127.0.0.1) port 8091 (#0) > >> > GET /riak/test/QTPs0B1zeu9I1WXtJnaAJpQyOee HTTP/1.1 > >> > User-Agent: curl/7.18.2 (i486-pc-linux-gnu) libcurl/7.18.2 > >> > OpenSSL/0.9.8g > >> zlib/1.2.3.3 libidn/1.8 libssh2/0.18 > >> > Host: 127.0.0.1:8091 > >> > Accept: */* > >> > > >> < HTTP/1.1 200 OK > >> < X-Riak-Vclock: a85hYGBgzGDKBVIsbGvXVWcwJTLmsTJ012Qf48sCAA== > >> < Vary: Accept-Encoding > >> < Server: MochiWeb/1.1 WebMachine/1.7.3 (participate in the frantic) > >> < Link: </riak/test>; rel="up" > >> < Last-Modified: Thu, 02 Dec 2010 02:12:27 GMT > >> < ETag: 35XAETNjfRGZJESsKwuMvB > >> < Date: Thu, 02 Dec 2010 02:12:47 GMT > >> < Content-Type: text/plain > >> < Content-Length: 14 > >> < > >> * Connection #0 to host 127.0.0.1 left intact > >> * Closing connection #0 > >> this is a test > >> > >> > >> OK, so that's the silly question I have: If I'm connecting to this server > >> remotely, is there any point in trying to see that data from a browser? > >> > >> If I do the following: > >> > >> http://myhost.com:8091/riak/images/img001.jpg > >> http://myhost.com:8091/riak/test/QTPs0B1zeu9I1WXtJnaAJpQyOee > >> > >> the browser just says "web page unavailable". > >> > >> +++++ > >> > >> Anyways, everything probably *is* working fine - and I probably just > >> shouldn't be trying to test it from a remote browser - because normally I > >> wouldn't access "raw" Riak data directly from a browser, right? Eventually > >> I'll have some sort of web application framework set up (eg, Nitrogen), > >> and > >> in the source of a web page I'll be using a Riak URL as a datasource - > >> say, > >> to send out some JSON to populate a control on the web page, right? > >> > >> Sorry about this newbie question! Thanks for any pointers. > >> > >> - Scott > >> > >> > >> _______________________________________________ > >> riak-users mailing list > >> riak-users@lists.basho.com > >> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com > >> > >> > > > > -- > Sent from my mobile device > > _______________________________________________ > riak-users mailing list > riak-users@lists.basho.com > http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com ------------------------------------------ Scoreloop AG, Brecherspitzstrasse 8, 81541 Munich, Germany, www.scoreloop.com sven.rie...@scoreloop.com Sitz der Gesellschaft: München, Registergericht: Amtsgericht München, HRB 174805 Vorstand: Dr. Marc Gumpinger (Vorsitzender), Dominik Westner, Christian van der Leeden, Vorsitzender des Aufsichtsrates: Olaf Jacobi
_______________________________________________ riak-users mailing list riak-users@lists.basho.com http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com