stripping www and forcing ssl

Gena Makhomed gmm at csdoc.com
Fri Mar 20 18:57:10 UTC 2015


On 20.03.2015 20:01, David Benfell wrote:

> I am attempting to strip www. and force SSL. Here are the blocks I'm
> using:
>
>          server {
>                  listen 50.250.218.168:80;
>                  listen 50.250.218.168:443 ssl;
>                  listen [2001:470:67:2b5::10]:80;
>                  listen [2001:470:67:2b5::10]:443 ssl;
>
>                  server_name www.disunitedstates.org;
>                  include ssl_common;
>
>                  access_log
> /var/log/nginx/disunitedstates.org/access.log;
>                  error_log
> /var/log/nginx/disunitedstates.org/error.log;
>
>                  return 301 https://disunitedstates.org$request_uri;
>          }
>
>          server {
>                  listen 50.250.218.168:80;
>                  listen [2001:470:67:2b5::10]:80;
>
>                  server_name disunitedstates.org;
>
>                  access_log
> /var/log/nginx/disunitedstates.org/access.log;
>                  error_log
> /var/log/nginx/disunitedstates.org/error.log;
>
>                  return 301 https://disunitedstates.org$request_uri;
>          }
>
> I have a separate server block for actually serving the site.
>
> But when one tries to access http://disunitedstates.org, one gets a
> 400 error, "The plain HTTP request was sent to HTTPS port." The
> information I'm finding out on the web about this is confusing and
> contradictory.
>
> How should this be done?

Probably "include ssl_common;" contains "ssl on;"
directive, which forces nginx to use HTTPS on 50.250.218.168:80

http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl

Just remove "ssl on;" from ssl_common include file and reload nginx.

-- 
Best regards,
  Gena



More information about the nginx mailing list