template-nginx.cfg.in 3.15 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
daemon off; # run in the foreground so supervisord can look after it

worker_processes 4;
pid $${directory:run}/nginx.pid;

events {
  worker_connections 768;
  # multi_accept on;
}

error_log $${nginx-configuration:error_log};

http {

  ##
  # Basic Settings
  ##

  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;

  default_type application/octet-stream;
  include ${nginx-push-stream-output:mime};

  ##
  # Logging Settings
  ##

  access_log $${nginx-configuration:access_log};
  error_log $${nginx-configuration: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;
  ##
  # Push stream Settings
  ##
  push_stream_shared_memory_size                32m;

server {
  listen [$${nginx-configuration:ip}]:$${nginx-configuration:port};
59
  listen $${nginx-configuration:local_ip}:$${nginx-configuration:port};
60 61 62 63 64 65 66 67

  fastcgi_temp_path  $${directory:varnginx} 1 2;
  uwsgi_temp_path  $${directory:varnginx} 1 2;
  scgi_temp_path  $${directory:varnginx} 1 2;

  client_body_temp_path $${directory:varnginx} 1 2;
  proxy_temp_path $${directory:varnginx} 1 2;

68 69 70
  auth_basic           "Nginx Access";
  auth_basic_user_file $${htpasswd-runner:htpasswd-path};

71 72 73 74 75
  ## Serve an error 204 (No Content) for favicon.ico
  location = /favicon.ico {
    return 204;
  }

76
  location $${nginx-configuration:publisher_location_prefix} {
77 78 79 80 81 82 83 84 85 86 87 88 89 90
            push_stream_publisher;

            push_stream_channels_path               $arg_id;
            # store messages in memory
            push_stream_store_messages              $${nginx-configuration:publisher_push_stream_store_messages};

            # Message size limit
            # client_max_body_size MUST be equal to client_body_buffer_size or
            # you will be sorry.
            client_max_body_size                    $${nginx-configuration:publisher_client_max_body_size};
            client_body_buffer_size                 $${nginx-configuration:publisher_client_body_buffer_size};

   }

91
   location ~ $${nginx-configuration:subscriber_location_prefix}/(.*) {
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
            # activate subscriber mode for this location
            add_header "Access-Control-Allow-Origin" $${nginx-configuration:subscriber_allow_origin};
            add_header 'Access-Control-Allow-Credentials' $${nginx-configuration:subscriber_allow_credential};
            add_header 'Access-Control-Allow-Methods' $${nginx-configuration:subscriber_allow_methods};
            add_header 'Access-Control-Allow-Headers' $${nginx-configuration:subscriber_allow_headers};

            push_stream_subscriber eventsource;
            # positional channel path
            push_stream_channels_path                   $1;

            # content-type
            default_type                                "text/event-stream; charset=utf-8";
  }

  location / {
      root $${directory:www};
  }
}
}