poner ejemplos cursiva como nginx cloudflare

ejemplos - ¿Cómo hacer que nginx redirija en función del valor de un encabezado?



tags h1 ejemplos (2)

Estoy alojando un sitio web detrás de un proxy Cloudflare, lo que significa que todas las solicitudes a mi servidor se realizan a través del puerto 80, aunque Cloudflare maneja el tráfico HTTP (puerto 80) y HTTPS (puerto 443).

Para distinguir entre los dos, Cloudflare incluye un encabezado X-Forwarded-Proto que se establece en "http" o "https" en función de la conexión del usuario.

Me gustaría redireccionar cada solicitud con un encabezado X-Forwarded-Proto: http a la versión SSL de mi sitio. ¿Cómo puedo lograr esto con una configuración nginx?


Intente usar la directiva de mapa: http://nginx.org/en/docs/http/ngx_http_map_module.html#map

Algo como eso...

map $http_x_forwarded_proto $php_backend { "https" "https_php_backend named loc"; default "default_php_backend named loc"; } server{ location / { proxy_pass http://$php_backend; } }

Este código es abstracto, pero puedes intentarlo ...


La forma más sencilla de hacerlo es con una directiva if . Si hay una manera mejor, hágamelo saber, ya que la gente dice que la directiva if es ineficiente. Nginx convierte los guiones en guiones bajos en los encabezados, por lo que X-Forwarded-Proto convierte en $http_x_forwarded_proto .

server { listen 80; server_name example.com; # Replace this with your own hostname if ($http_x_forwarded_proto = "http") { return 301 https://example.com$request_uri; } # Rest of configuration goes here... }