Return-Path: X-Original-To: apmail-couchdb-user-archive@www.apache.org Delivered-To: apmail-couchdb-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id BA4FFF76B for ; Wed, 20 Mar 2013 00:29:34 +0000 (UTC) Received: (qmail 98720 invoked by uid 500); 20 Mar 2013 00:29:33 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 98682 invoked by uid 500); 20 Mar 2013 00:29:33 -0000 Mailing-List: contact user-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@couchdb.apache.org Delivered-To: mailing list user@couchdb.apache.org Received: (qmail 98674 invoked by uid 99); 20 Mar 2013 00:29:33 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 20 Mar 2013 00:29:33 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=NORMAL_HTTP_TO_IP,RCVD_IN_DNSWL_LOW,SPF_PASS,WEIRD_PORT X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of andrew.melo@gmail.com designates 74.125.82.52 as permitted sender) Received: from [74.125.82.52] (HELO mail-wg0-f52.google.com) (74.125.82.52) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 20 Mar 2013 00:29:27 +0000 Received: by mail-wg0-f52.google.com with SMTP id 15so847394wgd.31 for ; Tue, 19 Mar 2013 17:29:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:content-type:content-transfer-encoding; bh=gJQrSSY26LG/EqIgpRi2SNodxMi4Cj6YyM05o2zfzzM=; b=T9FVstDhWlbGI6GIZdpDL4Et+PRsHfSmtwq6lJOrA0og1HbJYSn0FSB3cBhZa4gE2J vI9hK0vMQYLkCeTIHZAdc70XmoU4oRpO6lhH3TbZuCxxUr/bBCU/AJ3cUsow9i1zCHqv 2+qUrFMvy4xRLhTaGTO/tl/SZ6SqEAO+lxPCsvLzk23VntXGAKjzey8dHnus4hA8hT3o bi+ELoE2ZnMuPHkj+4m74sAoR35L3qUYctABS+2nS8b6MKlmoJ+GiisXLQmqBo9IYZ3q JFoppXENIA+qQZVcC7CS1phXIiEjn1P0MU7eae7+GSBBbg75nRg3OmWdDAt+U7sqwT5m jIMw== MIME-Version: 1.0 X-Received: by 10.194.237.40 with SMTP id uz8mr6913515wjc.49.1363739347504; Tue, 19 Mar 2013 17:29:07 -0700 (PDT) Received: by 10.216.232.223 with HTTP; Tue, 19 Mar 2013 17:29:07 -0700 (PDT) In-Reply-To: References: <675BF255-945C-4FB3-82EB-D96387FF2127@gmail.com> <85083D64-0DF2-40A7-B6C4-219CD1B29E18@gmail.com> <2CBB59DF-335A-47B2-AF01-CF4849D6FFC7@gmail.com> Date: Tue, 19 Mar 2013 19:29:07 -0500 Message-ID: Subject: Re: Serving Simple HTML page to Public IP from CouchDB From: Andrew Melo To: user@couchdb.apache.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org On Tue, Mar 19, 2013 at 5:52 PM, Chris Sphinx wrote= : > Okay, sorry about this I'm a programmer but I don't know anything about n= etworking. I just want to be sure there's no way to achieve the functionali= ty I'm talking about without 1) getting a domain name or 2) setting an entr= y in the /etc/hosts file on the computer I want to use to access the page. = Is that right? If you're not wanting a domain name for, I assume, cost reasons, have you looked at a product like dyndns.org that'll provide a free subdomain? -Andrew > > > On Mar 19, 2013, at 6:45 PM, Robert Newson wrote: > >> if you want a name maped to an ip address that works anywhere in the >> world, that's what DNS *is*. :) >> >> If you control all the clients, you can add local hosts files and/or >> point at your own dns server with your own custom zone. >> >> B. >> >> On 19 March 2013 22:40, Chris Sphinx wrote: >>> I simply want to be able to access an html page from the public IP with= out breaking the Couch. This is just for my personal convenience, this is n= ot for a public site. But I want to be able to access the webpage from anyw= here (like a mobile device or public computer). >>> >>> If I understand correctly, I could make this work if I had a registered= domain name? That's fine, but is there any way to accomplish this WITHOUT = buying a domain name? >>> >>> >>> On Mar 19, 2013, at 9:22 AM, Robert Newson wrote: >>> >>>> Virtual Hosting is predicated on host names. Vhosting the ip address >>>> is not recommended, for the reasons you've already encountered. >>>> >>>> What are you trying to achieve? It's very odd to direct people to your >>>> site via IP address. Are you trying to use the virtual host feature as >>>> a security mechanism? >>>> >>>> B. >>>> >>>> On 19 March 2013 13:15, Chris Sphinx wrote: >>>>> Sure, here is a secret gist with the relevant files: >>>>> >>>>> https://gist.github.com/chrissphinx/a9e8411fa6efefa9572c >>>>> >>>>> To state the problem again: I cannot access the webpage by hitting: >>>>> >>>>> http://184.75.155.16:5984 >>>>> >>>>> It will simply return the JSON welcome message. However, if I (or any= one else I assume) were to create an entry in THEIR /etc/hosts file: >>>>> >>>>> 184.75.155.16 couch >>>>> >>>>> And hit the url: >>>>> >>>>> http://couch:5984 >>>>> >>>>> Then it works. That's great, but it's not what I want. I want the pub= lic IP to go directly to the index.html file no matter what computer is hit= ting it. The only way I've found to get this to occur is to put in [vhosts]= : >>>>> >>>>> 184.75.155.16:5984 >>>>> >>>>> The public IP. This DOES work, but it breaks the entire database. You= can't write nor can you retrieve any docs from the database. This makes se= nse to me because the database isn't at the IP anymore, just the webpage. >>>>> >>>>> A sysadmin friend of mine told me that this is why you need a vhost s= et up, but now it's beginning to seem as if I actually want a "reverse prox= y" which is functionality that is not provided by CouchDB? Or is serving a = couch app to the public IP possible with only Couch running on the RPi? Tha= nk you for the help so far, it is really appreciated. >>>>> >>>>> >>>>> On Mar 19, 2013, at 4:53 AM, Dave Cottlehuber wro= te: >>>>> >>>>>> >>>>>> Hi Chris, >>>>>> >>>>>> Sorry to hear you are stuck on this! I remember being equally >>>>>> mind-boggled a couple years back. It will "click" soon hopefully. >>>>>> >>>>>> BTW It will help a great deal if you can put a minimal case together= & >>>>>> post it back to the list (or via a paste service gist friendpaste >>>>>> etc). vhosts, your CNAME, the design doc including the rewriter rule= s, >>>>>> and the specific error message in the logfile. >>>>>> >>>>>> I have this setup at home but power's off and I don't have the confi= g >>>>>> handy, if I have a free spot today I'll whip an example up. So this = is >>>>>> from memory, >>>>>> >>>>>> Ensure you've got: >>>>>> >>>>>> [httpd] >>>>>> bind_address =3D 0.0.0.0 >>>>>> >>>>>> [vhosts] >>>>>> cname:5984 =3D /dbname/_design/ddoc_name/_rewrite >>>>>> >>>>>> in your local.ini, replacing cname, dbname, ddoc_name as appropriate= . >>>>>> >>>>>> In your design document, your rewriter key should be something like = this: >>>>>> >>>>>> [ >>>>>> {"from": "/","to": "/index.html"}, >>>>>> {"from": "/*","to": "/*" } >>>>>> ] >>>>>> >>>>>> And obviously there should be an attachment called index.html within= the ddoc. >>>>>> >>>>>> Check through http://docs.couchdb.org/en/latest/pretty_urls.html and >>>>>> see if that helps you out. I'm pretty sure out of this thread we can >>>>>> put a better example up! >>>>>> >>>>>> Note that you could also set http port to 80 both in the vhost and i= n >>>>>> local.ini under [httpd] section which would be even tidier. >>>>>> >>>>>> A+ >>>>>> Dave >>>>> >>>>>> On 19 March 2013 09:32, Chris Sphinx wrote: >>>>>>> I have a CouchDB running on a RPi behind a router. I've seen countl= ess tutorials about "pretty urls", but no matter what I do I just cannot ge= t this to work for my public IP. All I want to do is be able to serve a bor= ing webpage to anyone that hits >>>>>>> >>>>>>> http://my.pub.lic.ip:5984 >>>>>>> >>>>>>> But the only way I was able to do this is by putting the public IP = under vhosts in the local.ini file. Doing so breaks the database and I can'= t access it in any way until I remove the line from the local.ini file and = restart it. Trying to get at any part of the database results in: >>>>>>> >>>>>>> {"error":"not_found","reason":"Document is missing attachment"} >>>>>>> >>>>>>> Sure, I can set up something like 127.0.0.1couch to hook up to= http://couch:5984 on the RPi. I can even load it from another machine, but= I have to set my /etc/hosts on whatever machine I want to use to include m= y.pub.lic.ipcouch. What if I want to allow anyone to access the page w= ithout having to hack their /etc/hosts file? How am I supposed to set this = up? >>>>>>> >>>>>>> I get the feeling that the only way to do this is to run something = like ngix in front of the database with a reverse proxy, but I'm already ki= lling an ant with a sledgehammer and I feel that there is just something I = am overlooking here. Can anybody tell me what I'm doing wrong? Or walk me t= hrough how to get CouchDB to serve up a webpage to a public IP? >>>>>> --=20 -- Andrew Melo