I’m currently in the process of deploying ibgib, and I just finished configuring my DNS .
Now I’m trying to set up https redirection so that (http://)www.ibgib.com will automatically redirect to https://www.ibgib.com. What is the “proper” way to implement this?
I know of the force_ssl option in the endpoint configuration, which I’ve tried turning on (with hsts: true), however this does not seem to do the redirect. But this could be that I do not have my docker setup properly configured. Is setting this supposed to do the redirect? Or am I supposed to accomplish this another way, perhaps with nginx? And if nginx is the way to go, could I then completely remove the http config setting from my endpoint config?
I’m currently using distillery to produce a release and then docker (engine, compose, machine) with a “simple” setup of my release container + a postgres container deployed to aws ec2. My full-ish (foolish? ) ongoing deployment notes can be found in my deploy issue for anyone else looking to go elixir + docker + aws.
I say “mostly” because both ibgib.com and www.ibgib.com redirect as expected to https://www.ibgib.com. Also if you type in https://www.ibgib.com directly it will work as well (*). However, if you type in https://ibgib.com, explicitly stating the https and giving a naked URL, it doesn’t properly redirect to the www version, but at this point I’m fine with that, as I’ll have to reconfigure this stuff anyway in a later release.
I just wanted to post my results for anyone else going the distillery + docker (engine, compose, machine) route.
(*) This may seem like a given to devops/deployment gurus, but I found plenty of (mis)configurations where this doesn’t work .
It’s not working for me either. I’ve tried both what was in the phoenix guides and force_ssl: [hsts: true] and read the docs for Plug.SSL without seeing any clear reason it’s not working.
If I type in https://myapp.com/foo, it loads with https. If I type http://myapp.com/foo, it loads without. What I want is for the https route to load, even if the user doesn’t type https into the location bar of their browser.
I’m not using a proxy. It’s just a normal install of phoenix.