Je suis aux prises avec NGINX et la configuration de mes v-hosts. J'essaye de mettre en place un vhost qui redirige les requêtes HTTP vers HTTPS puis vers mon application (quand c'est 443)NGINX SSL redirige trop souvent
Mon OS est Ubuntu 16.04 et j'utilise NGINX 1.10.3.
Le nginx.conf ressemble à ce que (la plupart du temps par défaut):
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
server_tokens off;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
gzip_disable "msie6";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
Mes ServerBlocks/VHosts ressembler à ça:
server {
listen 443 ssl;
server_name xxx.com;
# Prevent MITM
add_header Strict-Transport-Security "max-age=31536000";
ssl_certificate "/etc/nginx/ssl/xxx.com.pem";
ssl_certificate_key "/etc/nginx/ssl/xxx.com.key";
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
location/{
proxy_pass http://localhost:2237;
}
}
server {
listen 80;
server_name xxx.com;
return 301 https://$server_name$request_uri;
}
le problème est maintenant, que ce soit si je suis en utilisant HTTP ou HTTPS, il essaie de me rediriger vers HTTPS, donc je suis coincé dans une boucle infinie de redirections.
Je n'ai absolument aucune idée d'où est mon erreur.
Chaque VHost est dans un seul fichier. L'application sur le port 2237 est un noeud JS Express Server. J'utilise aussi Cloudflare (j'ai obtenu mon certificat SSL d'eux)
Edit:
sortie de curl -I
est:
$ curl -I https://example.com
HTTP/1.1 301 Moved Permanently
Date: Fri, 06 Oct 2017 19:42:19 GMT
Content-Type: text/html
Connection: keep-alive
Set-Cookie: __cfduid=d827df762e20a4e321b92b34bd15546621507318939; expires=Sat, 06-Oct-18 19:42:19 GMT; path=/; domain=.example.com; HttpOnly
Location: https://example.com/
Server: cloudflare-nginx
CF-RAY: 3a9b1a6a4e4564d5-FRA
Exécutez 'nginx -T' et vérifiez –
@TarunLalwani Non, c'est juste cette configuration – dunklesToast
Essayez d'ajouter 'proxy_redirect http: // localhost: 2237/https: // $ host /;' dans votre bloc 'proxy_pass'. Je pense que votre application nodejs fait une redirection qui pourrait être à l'origine de ces redirections –