У меня следующая конфигурация:
upstream estatico {
keepalive 1000;
server liferay1:8444;
server liferay2:8444;
}
upstream dinamico {
keepalive 1000;
server liferay3:8444;
server liferay4:8444;
server liferay5:8444;
server liferay6:8444;
}
location / {
expires 1h; # expiración de 1h
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for:$remote_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
proxy_connect_timeout 240;
proxy_send_timeout 240;
proxy_read_timeout 240;
proxy_pass http://estatico$uri$is_args$args; # Se cambia al upstream estático
proxy_cache edge-cache;
proxy_cache_lock on;
proxy_cache_revalidate on;
proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504;
proxy_cache_use_stale updating;
proxy_cache_valid any 1h; # Se definen 12h de caché (1h anterior)
proxy_cache_bypass $http_secret_header;
proxy_cache_key $c_uri;
proxy_cache_methods GET HEAD POST;
proxy_cache_bypass $nocache;
proxy_no_cache $nocache;
proxy_ignore_headers Cache-Control;
proxy_http_version 1.1;
proxy_set_header Connection "";
add_header X-CACHE-KEY $c_uri;
add_header X-Cache-Status $upstream_cache_status;
add_header Content-Security-Policy "upgrade-insecure-requests";
}
# selección de contenido para campañas
location ~ /mkt(.*)$ { # ingresa con /web/sitio/mkt/pagina
rewrite ^(/web/.*)/mkt/([\w-]+)\.?.*$ $1/$2$3 permanent;
#proxy_pass http://dinamico/$uri; # se dirige a /web/sitio/pagina
proxy_pass http://dinamico$uri$is_args$args; # se dirige a /web/sitio/pagina
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for:$remote_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
proxy_connect_timeout 240;
proxy_send_timeout 240;
proxy_read_timeout 240;
proxy_cache edge-cache;
proxy_cache_lock on;
proxy_cache_revalidate on;
proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504;
proxy_cache_use_stale updating;
proxy_cache_valid any 1h;
proxy_cache_bypass $http_secret_header;
proxy_cache_key $c_uri;
proxy_cache_methods GET HEAD POST;
proxy_cache_bypass $nocache;
proxy_no_cache $nocache;
proxy_ignore_headers Cache-Control;
proxy_http_version 1.1;
proxy_set_header Connection "";
add_header X-CACHE-KEY $c_uri;
add_header X-Cache-Status $upstream_cache_status;
add_header Content-Security-Policy "upgrade-insecure-requests";
}
Я пытаюсь сделать, если получил URL-адрес типа
/ web / negocios / mkt / videoconferencia
Я просто переписываю, чтобы сформировать URL-адрес, подобный этому
/ web / negocios / mkt / videoconferencia
это просто для исключения mkt из путь, а затем отправьте его в восходящий поток, который может указывать на сервер c Dynami c контент, который (восходящий динамический поток), но после перезаписи происходит то, что введите сейчас в location /, так как у меня это прокси-сервер, передающий другому upstream, весь трафик c отправляется в upstream estatico.
Я пытаюсь установить заголовок, который можно отправить на прокси, например
location ~ /mkt(.*)$ {
proxy_set_header My-custom-header: "valuetest";
or
add_header My-custom-header: "valuetest";
}
с этим я могу отправить заголовок в восходящий поток, но затем при повторном входе в conf я хочу прочитать его вот так, чтобы выполнить proxy_pass или нет для другого восходящего потока
location / {
if ($upstream_http_my_custom_header =! "valuetest") {
proxy_pass http://estatico$uri$is_args$args;
}
}
Я застрял на несколько дней, пожалуйста, помогите.