{{!
    Tempalte for nginx vhost.
}}#vhost settings for {{domain}}

server {
    listen   80;
    listen   [::]:80;
    server_name {{domain}};

    access_log {{domain}}-access.log;
    error_log {{domain}}-error.log;

{{#if useSSL}}
    # Redirect to https
    return 301 https://{{domain}}$request_uri;
{{else}}

    location / {
        limit_req   zone=one  burst=5;
        dav_methods PUT DELETE;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarder-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass http://127.0.0.1:{{port}}/;
        proxy_redirect off;
    }

{{#each errorPages}}
    error_page {{statusCode}} {{filename}};
    location = {{filename}} {
{{#if root}}        root {{root}};
{{/if}}{{#if internal}}        internal;
{{/if}}
    }
{{/each}}

{{/if}}

}


{{#if useSSL}}
    server {
    listen 443;
    ssl on;
    server_name {{domain}};

    ssl_certificate      {{ssl.crtPath}};
    ssl_certificate_key  {{ssl.keyPath}};
    {{#if caPath}}
        ssl_client_certificate {{ssl.caPath}};
        ssl_verify_client optional;
    {{/if}}

    access_log {{domain}}-access.log;
    error_log {{domain}}-error.log;

    location / {
        dav_methods PUT DELETE;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarder-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass http://127.0.0.1:{{port}}/;
        proxy_redirect off;
    }
}
{{/if}}