# Generated by Chef
upstream _sockethub {
  server   localhost:<%= @sockethub_port %>;
}

map $http_upgrade $connection_upgrade {
  default upgrade;
  '' close;
}

server {
  listen <%= @sockethub_external_port %> ssl spdy;
  add_header Strict-Transport-Security "max-age=15768000";

  server_name <%= @server_name %>;

  access_log <%= node[:nginx][:log_dir] %>/sockethub.access.log json;
  error_log <%= node[:nginx][:log_dir] %>/sockethub.error.log warn;

  # We might need real ETags, disable those for now
  gzip off;

  location / {
    # an HTTP header important enough to have its own Wikipedia entry:
    #  http://en.wikipedia.org/wiki/X-Forwarded-For
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    # enable this if and only if you use HTTPS, this helps Rack
    # set the proper protocol for doing redirects:
    proxy_set_header X-Forwarded-Proto https;

    # pass the Host: header from the client right along so redirects
    # can be set properly within the Rack application
    proxy_set_header Host $http_host;

    # we don't want nginx trying to do something clever with
    # redirects, we set the Host: header above already.
    proxy_redirect off;

    # Increase number of buffers. Default is 8
    proxy_buffers 1024 8k;

    proxy_pass http://_sockethub;
    proxy_http_version 1.1;
    # Enable WebSockets
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;

    # CORS
    add_header 'Access-Control-Allow-Origin' '*';
   }

  ssl_certificate <%= @ssl_cert %>;
  ssl_certificate_key <%= @ssl_key %>;
}
