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?
Additional Background
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.
Thanks @josevalim. I think that may be the sanity check that I’m looking for, as reading the docs it seems obvious what it should do…but I’m just not seeing it happening!
It is probably a docker configuration issue that I just haven’t been able to pin down yet.
Well, I couldn’t get the force_ssl to work as expected. I would hazard a guess that it may be because of the rewrite not working with the docker-machine vm and/or aws configuration.
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.
Thanks again!
(*) 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.