[erlang-questions] Static files served through Webmachine

Tristan Sloughter tristan.sloughter@REDACTED
Fri Jul 22 03:17:30 CEST 2011


So I'm messing around with using nginx's xsendfile. I have the proxy setup
and its working fine. And I have the following in the config to serve the
static files:

location /files {
    root /var/www;
    internal;
}

The proxying works fine and when I make a request to the nginx server it
properly ends up going to the Webmachine server, which dispatch rule sends
it to my resource for static files. Here I return:

NewReqData = wrq:set_resp_header("X-Accel-Redirect", "/files/test.html",
ReqData),
{"", NewReqData, Ctx}.

But this does not work to end up having nginx serve up test.html from
/var/www. Should it? Am I doing it completely wrong? Any suggestions?

Thanks,
Tristan

On Wed, Jul 20, 2011 at 6:51 PM, Kenny Stone <kennethstone@REDACTED> wrote:

> One way to look at it is that Erlang has (more powerful) versions of
> redis/memcached built in with ETS and Mnesia.  These are pretty nice
> features for web development, and I'm always a fan of cutting down the
> external dependencies for deployment and dev.  Just rebar your repo and you
> get this powerful, self-contained web server executable (one of the selling
> points of couchdb, actually).
>
> Kenny
>
>
> On Wed, Jul 20, 2011 at 6:38 PM, Tristan Sloughter <
> tristan.sloughter@REDACTED> wrote:
>
>> Kenny, yeah, thats what I was thinking of doing as a cache method if I
>> couldn't use something easily in front of Webmachine like Varnish (didn't
>> actually think of Varnish until Jesper brought it up. Maybe a bit of both...
>> Since while I don't want to use any templating on the backend, I want to end
>> up with a general web framework from all this.
>>
>> Tristan
>>
>>
>> On Wed, Jul 20, 2011 at 3:47 PM, Kenny Stone <kennethstone@REDACTED>wrote:
>>
>>> I wonder if an ets solution wouldn't be as good, as these solutions are
>>> just going to find some way of holding the data in memory anyways.  WIth
>>> ets, you can do things like hold compiled erlydtl/mustache templates inside
>>> of it...
>>>
>>> Kenny
>>>
>>>
>>> On Tue, Jul 19, 2011 at 11:47 AM, Garrett Smith <g@REDACTED> wrote:
>>>
>>>> If you're already using Nginx and just want control over URLs, you
>>>> have access to the standard rewrite module:
>>>>
>>>> http://wiki.nginx.org/HttpRewriteModule
>>>>
>>>> This is not 30x redirection btw, unless of course you want that.
>>>>
>>>> On Tue, Jul 19, 2011 at 9:24 AM, Tristan Sloughter
>>>> <tristan.sloughter@REDACTED> wrote:
>>>> > Sam, Jesper both these sound great, thanks! I'm also going to look
>>>> into what
>>>> > Jack was saying about how Rails handles some stuff.
>>>> > But I'm leaning towards Jesper's idea with Varnish being the best...
>>>> I'm one
>>>> > of those people who scoff at most benchmarks so not sure I'll bother
>>>> to do
>>>> > one for this, but maybe, if someone here can A) suggest the best setup
>>>> for
>>>> > it B) if it makes sense at all or would just be another worthless
>>>> benchmark
>>>> > that really gives no information about reality.
>>>> > Thanks!
>>>> > Tristan
>>>> > On Tue, Jul 19, 2011 at 7:00 AM, Jesper Louis Andersen
>>>> > <jesper.louis.andersen@REDACTED> wrote:
>>>> >>
>>>> >> On Tue, Jul 19, 2011 at 03:27, Tristan Sloughter
>>>> >> <tristan.sloughter@REDACTED> wrote:
>>>> >>
>>>> >> > Can anyone think of a way I can keep the nice URLs and serve the
>>>> static
>>>> >> > html
>>>> >> > files through nginx or another webserver.
>>>> >>
>>>> >> Put a Varnish accelerator in front of your system
>>>> >> (https://www.varnish-cache.org/). That way, it doesn't matter if
>>>> your
>>>> >> backend is slow at serving files as the accelerator will just cache
>>>> >> static stuff for you. In addition, you avoid the trouble of going
>>>> >> through another system as a proxy for static content. Also, the
>>>> >> solution is quite modular. On the development system, you don't need
>>>> >> more than a single system running Erlang.
>>>> >>
>>>> >> In my opinion, there is little reason not to plug into the whole
>>>> >> industry there is where the main point is to make serving HTTP go
>>>> >> faster. Trying to beat that with Erlang is probably possible, but I
>>>> >> don't think it is beneficial. Varnish is really really hard to beat.
>>>> >> It is built specifically for being insanely fast and it serves its
>>>> >> data from a shared mmap()'ing, scales to multiple CPUs and is a big
>>>> >> blob of nasty C code. I'd rather stand on the shoulders here than
>>>> >> trying to mess with it myself.
>>>> >>
>>>> >>
>>>> >> --
>>>> >> J.
>>>> >
>>>> >
>>>> > _______________________________________________
>>>> > erlang-questions mailing list
>>>> > erlang-questions@REDACTED
>>>> > http://erlang.org/mailman/listinfo/erlang-questions
>>>> >
>>>> >
>>>> _______________________________________________
>>>> erlang-questions mailing list
>>>> erlang-questions@REDACTED
>>>> http://erlang.org/mailman/listinfo/erlang-questions
>>>>
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20110721/cc474e5b/attachment.htm>


More information about the erlang-questions mailing list