Nginx http to https Redirect
A few days ago changed the site over to have https as an option; today I just changed nginx to respond to http with a 301 and redirect to the https version.
Not hard at all.
How?
Important Note: I did take a backup of my server prior to starting these changes. I strongly recommend this.
I added something like the following to my applications server
subsection.
server {
listen 80;
listen [::]:80;
server_name theopensourceu.org;
return 301 https://$server_name$request_uri;
}
server {
# listen 80; #Redirect to https above. (This is commented out)
# listen [::]:80;
listen 443;
server_name theopensourceu.org;
# ... the rest #
}
So were defining a server block to handle port 80; I've seen it done with a condition too and I like that this worked as it's more straightforward.
So if it comes in on this server block, it nginx returns a 301 and the appropriate version of the URL before it even gets to express/ghost.
I checked the syntax I typed (manually) via sudo nginx -t
. It passed and so I restarted nginx with: sudo systemctl reload nginx
.
Everything worked very well.