Commit 5bcb2a40 authored by Pedro Eduardo Trujillo's avatar Pedro Eduardo Trujillo
Browse files

Merge branch 'dev' into 'master'

Reordena casos de omisión de caché

See merge request redmic-project/nginx-proxy!2
parents f82812ae 2e39d7f7
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@ services:
        published: 443
        mode: host
    volumes:
      - cache-vol:/var/nginx/cache
      - acme-vol:/var/www/html
    secrets:
      - source: cert-chain
@@ -47,6 +48,9 @@ networks:
    external: true

volumes:
  cache-vol:
    name: cache-vol

  acme-vol:
    name: acme-vol

+2 −2
Original line number Diff line number Diff line
@@ -5,18 +5,18 @@ map $http_upgrade $connection_upgrade {

server {
	listen 80 default_server;
	server_name 0.0.0.0;

	return 301 https://$host$request_uri;
}

server {
	listen 443 ssl default_server;
	server_name 0.0.0.0;

	include /etc/nginx/snippets/ssl-well-known.conf;

	location / {
		include /etc/nginx/snippets/cache-usage.conf;

		add_header X-Frame-Options "SAMEORIGIN";

		proxy_set_header Host $host;
+8 −2
Original line number Diff line number Diff line
user nginx;
worker_processes 1;
worker_processes auto;

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;

events {
	worker_connections 1024;
	multi_accept on;
}

http {
@@ -20,11 +21,16 @@ http {
	access_log /var/log/nginx/access.log main;

	sendfile on;
	#tcp_nopush on;
	tcp_nopush on;

	keepalive_timeout 65;

	types_hash_max_size 2048;
	server_tokens off;
	client_max_body_size 250M;

	include /etc/nginx/snippets/gzip.conf;
	include /etc/nginx/snippets/cache-definition.conf;
	include /etc/nginx/snippets/ssl-params.conf;
	include /etc/nginx/snippets/ssl-certs.conf;

+50 −0
Original line number Diff line number Diff line
# Evaluación de uso de caché (y zona) según dominio
# Por defecto, no se usa caché
map $http_host $proxy_cache_zone {
	hostnames;
	atlas.* atlas_cache;
	redmic.* redmic_cache;
	default off;
}

# Preparación de evaluación de bypass de caché para un dominio concreto
map $arg_request $proxy_cache_bypass_atlas_value {
	GetMap 0;
	GetTile 0;
	default 1;
}

map $request_uri $proxy_cache_bypass_redmic_value {
	~^/api/mediastorage/.* 0;
	~^/api/.* 1;
	default 0;
}

# Evaluación de bypass de caché según dominio
# Crear variables '$proxy_cache_bypass_<dominio>_value' según sea necesario
map $http_host $proxy_cache_bypass_value {
	hostnames;
	atlas.* $proxy_cache_bypass_atlas_value;
	redmic.* $proxy_cache_bypass_redmic_value;
	default 0;
}

# Evaluación de control de caché del lado del cliente según dominio
map $http_host $cache_control_value {
	hostnames;
	atlas.* "max-age=864000";
	redmic.* "max-age=86400";
	default "no-cache";
}

proxy_cache_path /var/nginx/atlas_cache
	levels=1:2
	keys_zone=atlas_cache:100m
	inactive=24h
	max_size=5g;

proxy_cache_path /var/nginx/redmic_cache
	levels=1:2
	keys_zone=redmic_cache:50m
	inactive=24h
	max_size=1g;
+13 −0
Original line number Diff line number Diff line
proxy_cache $proxy_cache_zone;

proxy_cache_bypass $proxy_cache_bypass_value;
proxy_cache_min_uses 2;
proxy_cache_revalidate on;
proxy_cache_valid 2h;

proxy_cache_lock on;
proxy_cache_use_stale updating;
proxy_cache_background_update on;

add_header X-Cache-Status $upstream_cache_status;
add_header Cache-Control $cache_control_value;