user www-data;
worker_processes 4;
pid /var/run/nginx.pid;

events {{ '{' }}
	worker_connections 768;
	# multi_accept on;
{{ '}' }}

http {{ '{' }}

	##
	# Basic Settings
	##
	server_tokens off;
	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 65;
	types_hash_max_size 2048;
	# server_tokens off;

	# server_names_hash_bucket_size 64;
	# server_name_in_redirect off;

	include /etc/nginx/mime.types;
	default_type application/octet-stream;

	##
	# Logging Settings
	##

	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;
    
	##
	# Gzip Settings
	##

	gzip on;
	gzip_disable "msie6";

	# gzip_vary on;
	# gzip_proxied any;
	# gzip_comp_level 6;
	# gzip_buffers 16 8k;
	# gzip_http_version 1.1;
	# gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

	##
	# nginx-naxsi config
	##
	# Uncomment it if you installed nginx-naxsi
	##

	#include /etc/nginx/naxsi_core.rules;

	##
	# nginx-passenger config
	##
	# Uncomment it if you installed nginx-passenger
	##
	
	#passenger_root /usr;
	#passenger_ruby /usr/bin/ruby;

	##
	# Virtual Host Configs
	##

	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
    
    {% for nginx in nginx_list %}
    upstream {{ nginx.upstream.name }} {{ '{' }}{% for server in nginx.upstream.servers %} 
        server {{ server }};{% endfor %}
    {{ '}' }}

    server {{ '{' }}
        listen {{  nginx.server.port }} {% if nginx.server.protocol == 'ssl' %}ssl{% endif %};
        server_name {% for server_name in nginx.server.server_names %} {{ server_name }} {% endfor %};
        {% if nginx.server.certificate %}ssl_certificate {{nginx.name}}.chained.crt;
        ssl_certificate_key {{ nginx.name }}.key;
        ssl_ciphers {{ nginx.server.certificate['ciphers'] }};{% endif %}
        location / {{ '{' }}
            proxy_pass http://{{ nginx.upstream.name }};
        {{ '}' }}
    {{ '}' }}{% endfor %}
}
