upstream <: $vhost_name :> {
    server <: $upstream :>;

    keepalive 180; # TODO set from variable
}

server {
    listen                    *:80;
    listen                    [::]:80;
: if $load_balancer_sock {
    listen                    unix:<: $load_balancer_sock :>;
: }
: for $server_name -> $name {
    server_name               <: $name | raw :>;
: }

    keepalive_timeout         70;

    # error_log                 <: $data_dir :>/nginx-error.log info;
    # access_log                <: $data_dir :>/nginx-access.log default;

    client_max_body_size      10M;

    location @backend {
        proxy_pass http://<: $vhost_name :>;

        proxy_read_timeout 60s;

        proxy_set_header Host $host;
        proxy_set_header X-Accel-Support 1;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # keepalive & websocket
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }

: for $locations -> $location {
<: $location | raw :>
: }
}