Reverse proxy Nginx TLS
Petit mémo pour une configuration de reverse proxy sous nginx permettant de présenter en TLS (https) le site web d’un autre serveur non TLS.
Le serveur srvA.example.net est le virtualhost sur le serveur reverse proxy frontend.
Le serveur srvB.example.net est le serveur d’application web backend.
# Le serveur http sur le port 80 server { listen [::]:80; # ipv6 listen 80; # ipv4 server_name srvA.example.net; # redirection du traffic http vers https return 301 https://srvA.example.net$request_uri; } # le serveur https sur le port 443 server { listen 443; #ipv4 listen [::]:443; #ipv6 server_name srvA.example.net; # la configuration ssl via des includes (paramétrages des certificats et diverses options de sécurité) include snippets/ssl-progivet.net.conf; include snippets/ssl-params.conf; # partie reverse proxy location / { proxy_pass http://srvB.example.net:80; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_set_header Accept-Encoding ""; 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_set_header X-Forwarded-Proto $scheme; add_header Front-End-Https on; proxy_redirect off; } }