Skip to content

Instantly share code, notes, and snippets.

@sfabijanski
Created May 23, 2018 21:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sfabijanski/31a4012cdd3033e222d9ac279241bef7 to your computer and use it in GitHub Desktop.
Save sfabijanski/31a4012cdd3033e222d9ac279241bef7 to your computer and use it in GitHub Desktop.
Example iisnode.yml file that sets node_env to production, overriding the local web.config file.
# ============================================================================
# Make a copy of this file and name it iisnode.yml if you want to use it for overrides.
# ============================================================================
# The optional iisnode.yml file provides overrides of the iisnode configuration settings specified in web.config.
# node_env - determines the environment (production, development, staging, ...) in which
# child node processes run; if nonempty, is propagated to the child node processes as their NODE_ENV
# environment variable; the default is the value of the IIS worker process'es NODE_ENV
# environment variable
node_env: production
# nodeProcessCommandLine - command line starting the node executable; in shared
# hosting environments this setting would typically be locked at the machine scope.
# nodeProcessCommandLine: "C:\Program Files\nodejs\node.exe"
# interceptor - fully qualified file name of a node.js application that will run instead of an actual application
# the request targets; the fully qualified file name of the actual application file is provided as the first parameter
# to the interceptor application; default interceptor supports iisnode logging
# interceptor: "c:\Program Files\iisnode\interceptor.js"
# nodeProcessCountPerApplication - number of node.exe processes that IIS will start per application;
# setting this value to 0 results in creating one node.exe process per each processor on the machine
# nodeProcessCountPerApplication: 1
# maxConcurrentRequestsPerProcess - maximum number of reqeusts one node process can
# handle at a time
# maxConcurrentRequestsPerProcess: 1024
# maxNamedPipeConnectionRetry - number of times IIS will retry to establish a named pipe connection with a
# node process in order to send a new HTTP request
# maxNamedPipeConnectionRetry: 100
# namedPipeConnectionRetryDelay - delay in milliseconds between connection retries
# namedPipeConnectionRetryDelay: 250
# maxNamedPipeConnectionPoolSize - maximum number of named pipe connections that will be kept in a connection pool;
# connection pooling helps improve the performance of applications that process a large number of short lived HTTP requests
# maxNamedPipeConnectionPoolSize: 512
# maxNamedPipePooledConnectionAge - age of a pooled connection in milliseconds after which the connection is not reused for
# subsequent requests
# maxNamedPipePooledConnectionAge: 30000
# asyncCompletionThreadCount - size of the IO thread pool maintained by the IIS module to process asynchronous IO; setting it
# to 0 (default) results in creating one thread per each processor on the machine
# asyncCompletionThreadCount: 0
# initialRequestBufferSize - initial size in bytes of a memory buffer allocated for a new HTTP request
# initialRequestBufferSize: 4096
# maxRequestBufferSize - maximum size in bytes of a memory buffer allocated per request; this is a hard limit of
# the serialized form of HTTP request or response headers block
# maxRequestBufferSize: 65536
# watchedFiles - semi-colon separated list of files that will be watched for changes; a change to a file causes the application to recycle;
# each entry consists of an optional directory name plus required file name which are relative to the directory where the main application entry point
# is located; wild cards are allowed in the file name portion only; for example: "*.js;node_modules\foo\lib\options.json;app_data\*.config.json"
# watchedFiles: *.js;iisnode.yml
# uncFileChangesPollingInterval - applications are recycled when the underlying *.js file is modified; if the file resides
# on a UNC share, the only reliable way to detect such modifications is to periodically poll for them; this setting
# controls the polling interval
# uncFileChangesPollingInterval: 5000
# gracefulShutdownTimeout - when a node.js file is modified, all node processes handling running this application are recycled;
# this setting controls the time (in milliseconds) given for currently active requests to gracefully finish before the
# process is terminated; during this time, all new requests are already dispatched to a new node process based on the fresh version
# of the application
# gracefulShutdownTimeout: 60000
# loggingEnabled - controls whether stdout and stderr streams from node processes are captured and made available over HTTP
# loggingEnabled: true
# logDirectory - directory name relative to the main application file that will store files with stdout and stderr captures;
# individual log file names have unique file names; log files are created lazily (i.e. when the process actually writes something
# to stdout or stderr); an HTML index of all log files is also maintained as index.html in that directory;
# by default, if your application is at http://foo.com/bar.js, logs will be accessible at http://foo.com/iisnode;
# SECURITY NOTE: if log files contain sensitive information, this setting should be modified to contain enough entropy to be considered
# cryptographically secure; in most situations, a GUID is sufficient
# logDirectory: iisnode
# debuggingEnabled - controls whether the built-in debugger is available
# debuggingEnabled: true
# debuggerPortRange - range of TCP ports that can be used for communication between the node-inspector debugger and the debugee; iisnode
# will round robin through this port range for subsequent debugging sessions and pick the next available (free) port to use from the range
# debuggerPortRange: 5058-6058
# debuggerPathSegment - URL path segment used to access the built-in node-inspector debugger; given a node.js application at
http://foo.com/bar/baz.js, the debugger can be accessed at http://foo.com/bar/baz.js/{debuggerPathSegment}, by default
http://foo.com/bar/baz.js/debug
# debuggerPathSegment: debug
# debugHeaderEnabled - boolean indicating whether iisnode should attach the iisnode-debug HTTP response header with
# diagnostics information to all responses
# debugHeaderEnabled: false
# maxLogFileSizeInKB - maximum size of a single log file in KB; once a log file exceeds this limit a new log file is created
# maxLogFileSizeInKB: 128
# maxTotalLogFileSizeInKB - maximum total size of all log files in the logDirectory; once exceeded, old log files are removed
# maxTotalLogFileSizeInKB: 1024
# maxLogFiles - maximum number of log files in the logDirectory; once exceeded, old log files are removed
# maxLogFiles: 20
# devErrorsEnabled: true
# flushResponse - controls whether each HTTP response body chunk is immediately flushed by iisnode; flushing each body chunk incurs
# CPU cost but may improve latency in streaming scenarios
# flushResponse: false
# enableXFF - controls whether iisnode adds or modifies the X-Forwarded-For request HTTP header with the IP address of the remote host
# enableXFF: false
# promoteServerVars - comma delimited list of IIS server variables that will be propagated to the node.exe process in the form of
# x-iisnode-<server_variable_name>
# HTTP request headers; for a list of IIS server variables available see
# http://msdn.microsoft.com/en-us/library/ms524602(v=vs.90).aspx; for example "AUTH_USER,AUTH_TYPE"
# promoteServerVars:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment