{%- set site = salt['pillar.get']('nginx:server:site:'+site_name) %}
{%- from "ceph/map.jinja" import client with context %}

server {

  {%- include "nginx/files/_name.conf" %}
  {%- include "nginx/files/_log.conf" %}
  {%- include "nginx/files/_ssl.conf" %}

  client_max_body_size {{ site.client_max_body_size|default('10g') }};

  # Following options are available only in nginx 1.7<
  # fastcgi_request_buffering off;
  # fastcgi_buffering off;

  location / {
    fastcgi_pass_header Authorization;
    fastcgi_pass_request_headers on;

    if ($request_method = PUT) {
        rewrite ^ /PUT$request_uri;
    }

    include fastcgi_params;

    fastcgi_pass unix:/tmp/radosgw.sock;
  }

  location /PUT/ {
    internal;

    fastcgi_pass_header Authorization;
    fastcgi_pass_request_headers on;

    include fastcgi_params;
    fastcgi_param CONTENT_LENGTH $content_length;

    fastcgi_pass unix:/tmp/radosgw.sock;
  }
}
