How to redirect to https when using load balancer in front of nginx

Palvelin Postmaster postmaster at palvelin.fi
Wed Sep 4 21:07:14 UTC 2019


I have AWS ALB in front of an instance running nginx. I want to terminate https at the load balancer.

I have setup ALB's http listener to redirect http to https and forward https to the instance’s port 80.

I’m switching from using apache2 to nginx. My apache responds on a single port 80. In my apache config these directives are used to redirect traffic.

	RewriteCond %{HTTPS} off
	RewriteCond %{HTTP:X-Forwarded-Proto} !https
	RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302]
	SetEnv HTTPS "on"
	SetEnv HTTP_X_FORWARDED_PROTO ”https”

As simple as it may be, I can’t figure out how to match this setup with nginx. With the following simple config most requests work but apparently assets in some of my pages have the scheme hardcoded and they don’t get rewritten.

server {
	listen 80;
	set_real_ip_from 172.31.0.0/16;
	real_ip_header X-Forwarded-For;
	server_name ”my.server.com";
	root /var/www/;
	access_log /var/log/nginx/access-.log main_ext;
	error_log /var/log/nginx/error.log notice;
  	}

--
Hans Vallden
VP of Business Development | Vincit California
(949) 241-1151

vincit.com | vincitdevtalks.com 
proud member of codedinoc.com





More information about the nginx mailing list