# Updated by Siege 2.69, May-24-2010 # Copyright 2000-2007 by Jeffrey Fulmer, et al. # # Siege configuration file -- edit as necessary # For more information about configuring and running # this program, visit: http://www.joedog.org/ # # Variable declarations. You can set variables here # for use in the directives below. Example: # PROXY = proxy.joedog.org # Reference variables inside ${} or $(), example: # proxy-host = ${PROXY} # You can also reference ENVIRONMENT variables without # actually declaring them, example: # logfile = $(HOME)/var/siege.log # # Signify verbose mode, true turns on verbose output # ex: verbose = true|false # verbose = true # # CSV Verbose format: with this option, you can choose # to format verbose output in traditional siege format # or comma separated format. The latter will allow you # to redirect output to a file for import into a spread # sheet, i.e., siege > file.csv # ex: csv = true|false (default false) # csv = true # # Full URL verbose format: By default siege displays # the URL path and not the full URL. With this option, # you # can instruct siege to show the complete URL. # ex: fullurl = true|false (default false) # # fullurl = true # # Display id: in verbose mode, display the siege user # id associated with the HTTP transaction information # ex: display-id = true|false # # display-id = # # Show logfile location. By default, siege displays the # logfile location at the end of every run when logging # You can turn this message off with this directive. # ex: show-logfile = false # show-logfile = true # # Default logging status, true turns logging on. # ex: logging = true|false # logging = true # # Logfile, the default siege logfile is $PREFIX/var/siege.log # This directive allows you to choose an alternative log file. # Environment variables may be used as shown in the examples: # ex: logfile = /home/jeff/var/log/siege.log # logfile = ${HOME}/var/log/siege.log # logfile = ${LOGFILE} # logfile = ./siege.log # # HTTP protocol. Options HTTP/1.1 and HTTP/1.0. # Some webservers have broken implementation of the # 1.1 protocol which skews throughput evaluations. # If you notice some siege clients hanging for # extended periods of time, change this to HTTP/1.0 # ex: protocol = HTTP/1.1 # protocol = HTTP/1.0 # protocol = HTTP/1.1 # # Chunked encoding is required by HTTP/1.1 protocol # but siege allows you to turn it off as desired. # # ex: chunked = true # chunked = true # # Cache revalidation. # Siege supports cache revalidation for both ETag and # Last-modified headers. If a copy is still fresh, the # server responds with 304. # HTTP/1.1 200 0.00 secs: 2326 bytes ==> /apache_pb.gif # HTTP/1.1 304 0.00 secs: 0 bytes ==> /apache_pb.gif # HTTP/1.1 304 0.00 secs: 0 bytes ==> /apache_pb.gif # # ex: cache = true # cache = false # # Connection directive. Options "close" and "keep-alive" # Starting with release 2.57b3, siege implements persistent # connections in accordance to RFC 2068 using both chunked # encoding and content-length directives to determine the # page size. To run siege with persistent connections set # the connection directive to keep-alive. (Default close) # CAUTION: use the keep-alive directive with care. # DOUBLE CAUTION: this directive does not work well on HPUX # TRIPLE CAUTION: don't use keep-alives until further notice # ex: connection = close # connection = keep-alive # connection = close # # Default number of simulated concurrent users # ex: concurrent = 25 # concurrent = 15 # # Default duration of the siege. The right hand argument has # a modifier which specifies the time units, H=hours, M=minutes, # and S=seconds. If a modifier is not specified, then minutes # are assumed. # ex: time = 50M # # time = # # Repetitions. The length of siege may be specified in client # reps rather then a time duration. Instead of specifying a time # span, you can tell each siege instance to hit the server X number # of times. So if you chose 'reps = 20' and you've selected 10 # concurrent users, then siege will hit the server 200 times. # ex: reps = 20 # # reps = # # Default URLs file, set at configuration time, the default # file is PREFIX/etc/urls.txt. So if you configured siege # with --prefix=/usr/local then the urls.txt file is installed # int /usr/local/etc/urls.txt. Use the "file = " directive to # configure an alternative URLs file. You may use environment # variables as shown in the examples below: # ex: file = /export/home/jdfulmer/MYURLS.txt # file = $HOME/etc/urls.txt # file = $URLSFILE # file = ./urls.txt # # Default URL, this is a single URL that you want to test. This # is usually set at the command line with the -u option. When # used, this option overrides the urls.txt (-f FILE/--file=FILE) # option. You will HAVE to comment this out for in order to use # the urls.txt file option. # ex: url = https://shemp.whoohoo.com/docs/index.jsp # # url = # # Default delay value, see the siege(1) man page. # This value is used for load testing, it is not used # for benchmarking. # ex: delay = 3 # delay = 1 # # Connection timeout value. Set the value in seconds for # socket connection timeouts. The default value is 30 seconds. # ex: timeout = 30 # # timeout = # # Session expiration: This directive allows you to delete all # cookies after you pass through the URLs. This means siege will # grab a new session with each run through its URLs. The default # value is false. # ex: expire-session = true # # expire-session = # # Failures: This is the number of total connection failures allowed # before siege aborts. Connection failures (timeouts, socket failures, # etc.) are combined with 400 and 500 level errors in the final stats, # but those errors do not count against the abort total. If you set # this total to 10, then siege will abort after ten socket timeouts, # but it will NOT abort after ten 404s. This is designed to prevent # a run-away mess on an unattended siege. The default value is 1024 # ex: failures = 50 # # failures = # # Internet simulation. If true, siege clients will hit # the URLs in the urls.txt file randomly, thereby simulating # internet usage. If false, siege will run through the # urls.txt file in order from first to last and back again. # ex: internet = true # internet = false # # Default benchmarking value, If true, there is NO delay # between server requests, siege runs as fast as the web # server and the network will let it. Set this to false # for load testing. # ex: benchmark = true # benchmark = false # # Set the siege User-Agent to identify yourself at the # host, the default is: JoeDog/1.00 [en] (X11; I; Siege #.##) # But that wreaks of corporate techno speak. Feel free # to make it more interesting :-) Since Limey is recovering # from minor surgery as I write this, I'll dedicate the # example to him... # ex: user-agent = Limey The Bulldog # # user-agent = # # Accept-encoding. This option allows you to specify # acceptable encodings returned by the server. Use this # directive to turn on compression. By default we accept # gzip compression. # # ex: accept-encoding = * # accept-encoding = gzip # accept-encoding = compress;q=0.5;gzip;q=1 accept-encoding = gzip # # TURN OFF THAT ANNOYING SPINNER! # Siege spawns a thread and runs a spinner to entertain you # as it collects and computes its stats. If you don't like # this feature, you may turn it off here. # ex: spinner = false # spinner = true # # WWW-Authenticate login. When siege hits a webpage # that requires basic authentication, it will search its # logins for authentication which matches the specific realm # requested by the server. If it finds a match, it will send # that login information. If it fails to match the realm, it # will send the default login information. (Default is "all"). # You may configure siege with several logins as long as no # two realms match. The format for logins is: # username:password[:realm] where "realm" is optional. # If you do not supply a realm, then it will default to "all" # ex: login = jdfulmer:topsecret:Admin # login = jeff:supersecret # # login = # # WWW-Authenticate username and password. When siege # hits a webpage that requires authentication, it will # send this user name and password to the server. Note # this is NOT form based authentication. You will have # to construct URLs for that. # ex: username = jdfulmer # password = whoohoo # # username = # password = # # ssl-cert # This optional feature allows you to specify a path to a client # certificate. It is not neccessary to specify a certificate in # order to use https. If you don't know why you would want one, # then you probably don't need this feature. Use openssl to # generate a certificate and key with the following command: # $ openssl req -nodes -new -days 365 -newkey rsa:1024 \ # -keyout key.pem -out cert.pem # Specify a path to cert.pem as follows: # ex: ssl-cert = /home/jeff/.certs/cert.pem # # ssl-cert = # # ssl-key # Use this option to specify the key you generated with the command # above. ex: ssl-key = /home/jeff/.certs/key.pem # You may actually skip this option and combine both your cert and # your key in a single file: # $ cat key.pem > client.pem # $ cat cert.pem >> client.pem # Now set the path for ssl-cert: # ex: ssl-cert = /home/jeff/.certs/client.pem # (in this scenario, you comment out ssl-key) # # ssl-key = # # ssl-timeout # This option sets a connection timeout for the ssl library # ex: ssl-timeout = 30 # # ssl-timeout = # # ssl-ciphers # You can use this feature to select a specific ssl cipher # for HTTPs. To view the ones available with your library run # the following command: openssl ciphers # ex: ssl-ciphers = EXP-RC4-MD5 # # ssl-ciphers = # # Login URL. This is the first URL to be hit by every siege # client. This feature was designed to allow you to login to # a server and establish a session. It will only be hit once # so if you need to hit this URL more then once, make sure it # also appears in your urls.txt file. # # ex: login-url = http://eos.haha.com/login.jsp POST name=jeff&pass=foo # # login-url = # # Proxy protocol. This option allows you to select a proxy # server stress testing. The proxy will request the URL(s) # specified by -u"my.url.org" OR from the urls.txt file. # # ex: proxy-host = proxy.whoohoo.org # proxy-port = 8080 # # proxy-host = # proxy-port = # # Proxy-Authenticate. When scout hits a proxy server which # requires username and password authentication, it will this # username and password to the server. The format is username, # password and optional realm each separated by a colon. You # may enter more than one proxy-login as long as each one has # a different realm. If you do not enter a realm, then scout # will send that login information to all proxy challenges. If # you have more than one proxy-login, then scout will attempt # to match the login to the realm. # ex: proxy-login: jeff:secret:corporate # proxy-login: jeff:whoohoo # # proxy-login = # # Redirection support. This option allows to to control # whether a Location: hint will be followed. Most users # will want to follow redirection information, but sometimes # it's desired to just get the Location information. # # ex: follow-location = false # # follow-location = # Zero-length data. siege can be configured to disregard # results in which zero bytes are read after the headers. # Alternatively, such results can be counted in the final # tally of outcomes. # # ex: zero-data-ok = false # # zero-data-ok = # # end of siegerc