Welcome! Log In Create A New Profile

Advanced

Re: nginx as reverse proxy with "mod secdownload" feature - possible?

Reinis Rozitis
October 21, 2010 07:36AM
> This would not help (at least i think so) because we do not want to sync
> any content to the caches. We just want them to fetch the stuff from the
> main servers if they haven't stored it locally in their proxy cache, and
> deliver it from the cache if they already have it.

You don't need to "store" directly (like push any files beforehand) to the
cache servers - nginx can store the files on demand in the same tree
structure as on backend (quite easy to examine that way what is getting
fetched and purge the cache with simple filesystem tools like 'find / rm')
by using the "proxy_store on" (
http://wiki.nginx.org/NginxHttpProxyModule#proxy_store ) directive or either
in its own cache tree but then you need to adjust proxy_cache_key so that it
doesnt include the default $request_uri (which would contain the dynamic
hash that way storing a single file multiple times (someone correct me if
I'm wronge here)) but just the real path (do something like $secure_link
rewrite) and the file technically should be fetched from cache each time
rather than backend (the advantage of this is you can have a dynamic garbage
collector (cache cleaner) by adjusting the overal size and time to live
rather than have to do it yourself) ..

To give some example - some pseido config for the first approach:

upstream backend {
server backendip:8080;
}

server {
root /webroot;
error_page 404 = @store;

location /dlpath/ {
secure_link_secret randomkey;
if ($secure_link = "") {
return 403;
}
rewrite ^ /dlpath/$secure_link break;
}

location @store {
internal;
proxy_pass http://backend;
proxy_store on;
}
}




> So from all my readings, i think(! and might be wrong), the easiest and
> maybe best way for now would be having a small perl module doing the
> secdownload stuff (just a few lines of code, so no big deal) and rewrite
> the request to a normalized url which can be found on the backend.

Since I am not aware of any third party modules which can keep track of the
download status thats one of the solutions (imo the easy way).


On the other hand if you plan to _exploit_ all of nginx possibilities /
features you could use the memcache + echo module
http://wiki.nginx.org/NginxHttpMemcModule
http://github.com/agentzh/echo-nginx-module

In a way the Memcached would hold an unique key (inserted by third party app
or some nginx subrequest) which consists of the file path or true/false and
after making a request the key would be deleted - thats just theory though
and requires some voodoo :)



rr


_______________________________________________
nginx mailing list
nginx@nginx.org
http://nginx.org/mailman/listinfo/nginx
Subject Author Posted

nginx as reverse proxy with "mod secdownload" feature - possible?

Sven 'Darkman' Michels October 19, 2010 10:40AM

Re: nginx as reverse proxy with "mod secdownload" feature - possible?

Reinis Rozitis October 19, 2010 11:16AM

Re: nginx as reverse proxy with "mod secdownload" feature - possible?

Sven 'Darkman' Michels October 21, 2010 05:46AM

Re: nginx as reverse proxy with "mod secdownload" feature - possible?

Reinis Rozitis October 21, 2010 07:36AM

Re: nginx as reverse proxy with "mod secdownload" feature - possible?

agentzh October 21, 2010 10:14PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 215
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready