search
top

Reverse proxy transparents

Vous pouvez utiliser nginx pour cacher ces propres « server ».
Pour cela, l’idée est simple, vous avez un « server » qui ecoute sur votre IP public et vos autre « server » applicatif écoute sur une ip privée ou local

Dans l’exemple de configuration ci-dessous, les « servers » applicatif écoute sur 127.0.0.1:80

server {
    listen       111.222.111.2222:80 default;
    server_name  _;
    server_name_in_redirect off;

    location / {
        set $no_cache "";
        if ($request_method !~ ^(GET|HEAD)$) {
            set $no_cache "1";
        }
        if ($no_cache = "1") {
            add_header Set-Cookie "_mcnc=1; Max-Age=2; Path=/";
            add_header X-Microcachable "0";
        }
        if ($http_cookie ~* "_mcnc") {
            set $no_cache "1";
        }
        proxy_no_cache $no_cache;
        proxy_cache_bypass $no_cache;
        proxy_pass http://127.0.0.1;

        proxy_cache microcache;
        proxy_cache_key $scheme$host$request_method$request_uri;
        proxy_cache_valid 200 1s;
        proxy_cache_use_stale updating;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_max_temp_file_size 1M;
    }
    access_log  /var/log/nginx/access.log vhosts;
    error_log  /var/log/nginx/error.log info;
}

Vous devez ajouter dans votre « http » la ligne ci-dessous pour activer le cache Nginx

proxy_cache_path /var/spool/nginx/cache levels=1:2 keys_zone=votreclef:5m max_size=1000m;

Dans cette exemple, ce dossier de cache ne dépassera pas 1000Mo et sera purgé par Nginx
Vous pouvez supprimé la directive access_log pour utiliser l’astuce indiqué dans cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

top