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










