rhaproxy 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Changelog +0 -0
- data/MIT-LICENSE +21 -0
- data/README +58 -0
- data/lib/rhaproxy/backend.rb +5014 -0
- data/lib/rhaproxy/defaults.rb +3713 -0
- data/lib/rhaproxy/frontend.rb +3251 -0
- data/lib/rhaproxy/global.rb +590 -0
- data/lib/rhaproxy/listen.rb +6090 -0
- data/lib/rhaproxy/peers.rb +110 -0
- data/lib/rhaproxy/userlist.rb +93 -0
- data/lib/rhaproxy/version.rb +17 -0
- data/lib/rhaproxy.rb +9 -0
- data/setup.rb +1585 -0
- data/test/test_helper.rb +2 -0
- data/test/test_rhaproxy.rb +11 -0
- metadata +81 -0
@@ -0,0 +1,590 @@
|
|
1
|
+
# = rhaproxy - A HAproxy gem for Ruby
|
2
|
+
#
|
3
|
+
# Homepage:: http://github.com/jjuliano/rhaproxy
|
4
|
+
# Author:: Joel Bryan Juliano
|
5
|
+
# Copyright:: (cc) 2011 Joel Bryan Juliano
|
6
|
+
# License:: MIT
|
7
|
+
|
8
|
+
#
|
9
|
+
# class RhaproxyGlobal.new( array, str, array)
|
10
|
+
#
|
11
|
+
|
12
|
+
#
|
13
|
+
# Parameters in the "global" section are process-wide and often OS-specific. They
|
14
|
+
# are generally set once for all and do not need being changed once correct. Some
|
15
|
+
# of them have command-line equivalents.
|
16
|
+
#
|
17
|
+
class RhaproxyGlobal
|
18
|
+
|
19
|
+
#
|
20
|
+
# chroot <jail dir>
|
21
|
+
# Changes current directory to <jail dir> and performs a chroot() there before
|
22
|
+
# dropping privileges. This increases the security level in case an unknown
|
23
|
+
# vulnerability would be exploited, since it would make it very hard for the
|
24
|
+
# attacker to exploit the system. This only works when the process is started
|
25
|
+
# with superuser privileges. It is important to ensure that <jail_dir> is both
|
26
|
+
# empty and unwritable to anyone.
|
27
|
+
#
|
28
|
+
attr_accessor :chroot
|
29
|
+
|
30
|
+
#
|
31
|
+
# daemon
|
32
|
+
# Makes the process fork into background. This is the recommended mode of
|
33
|
+
# operation. It is equivalent to the command line "-D" argument. It can be
|
34
|
+
# disabled by the command line "-db" argument.
|
35
|
+
#
|
36
|
+
attr_accessor :daemon
|
37
|
+
|
38
|
+
#
|
39
|
+
# gid <number>
|
40
|
+
# Changes the process' group ID to <number>. It is recommended that the group
|
41
|
+
# ID is dedicated to HAProxy or to a small set of similar daemons. HAProxy must
|
42
|
+
# be started with a user belonging to this group, or with superuser privileges.
|
43
|
+
# See also "group" and "uid".
|
44
|
+
#
|
45
|
+
attr_accessor :gid
|
46
|
+
|
47
|
+
#
|
48
|
+
# group <group name>
|
49
|
+
# Similar to "gid" but uses the GID of group name <group name> from /etc/group.
|
50
|
+
# See also "gid" and "user".
|
51
|
+
#
|
52
|
+
attr_accessor :group
|
53
|
+
|
54
|
+
#
|
55
|
+
# log <address> <facility> [max level [min level]]
|
56
|
+
# Adds a global syslog server. Up to two global servers can be defined. They
|
57
|
+
# will receive logs for startups and exits, as well as all logs from proxies
|
58
|
+
# configured with "log global".
|
59
|
+
#
|
60
|
+
# <address> can be one of:
|
61
|
+
#
|
62
|
+
# - An IPv4 address optionally followed by a colon and a UDP port. If
|
63
|
+
# no port is specified, 514 is used by default (the standard syslog
|
64
|
+
# port).
|
65
|
+
#
|
66
|
+
# - A filesystem path to a UNIX domain socket, keeping in mind
|
67
|
+
# considerations for chroot (be sure the path is accessible inside
|
68
|
+
# the chroot) and uid/gid (be sure the path is appropriately
|
69
|
+
# writeable).
|
70
|
+
#
|
71
|
+
# <facility> must be one of the 24 standard syslog facilities :
|
72
|
+
#
|
73
|
+
# kern user mail daemon auth syslog lpr news
|
74
|
+
# uucp cron auth2 ftp ntp audit alert cron2
|
75
|
+
# local0 local1 local2 local3 local4 local5 local6 local7
|
76
|
+
#
|
77
|
+
# An optional level can be specified to filter outgoing messages. By default,
|
78
|
+
# all messages are sent. If a maximum level is specified, only messages with a
|
79
|
+
# severity at least as important as this level will be sent. An optional minimum
|
80
|
+
# level can be specified. If it is set, logs emitted with a more severe level
|
81
|
+
# than this one will be capped to this level. This is used to avoid sending
|
82
|
+
# "emerg" messages on all terminals on some default syslog configurations.
|
83
|
+
# Eight levels are known :
|
84
|
+
#
|
85
|
+
# emerg alert crit err warning notice info debug
|
86
|
+
#
|
87
|
+
attr_accessor :log
|
88
|
+
|
89
|
+
#
|
90
|
+
# nbproc <number>
|
91
|
+
# Creates <number> processes when going daemon. This requires the "daemon"
|
92
|
+
# mode. By default, only one process is created, which is the recommended mode
|
93
|
+
# of operation. For systems limited to small sets of file descriptors per
|
94
|
+
# process, it may be needed to fork multiple daemons. USING MULTIPLE PROCESSES
|
95
|
+
# IS HARDER TO DEBUG AND IS REALLY DISCOURAGED. See also "daemon".
|
96
|
+
#
|
97
|
+
attr_accessor :nbproc
|
98
|
+
|
99
|
+
#
|
100
|
+
# pidfile <pidfile>
|
101
|
+
# Writes pids of all daemons into file <pidfile>. This option is equivalent to
|
102
|
+
# the "-p" command line argument. The file must be accessible to the user
|
103
|
+
# starting the process. See also "daemon".
|
104
|
+
#
|
105
|
+
attr_accessor :pidfile
|
106
|
+
|
107
|
+
#
|
108
|
+
# uid <number>
|
109
|
+
# Changes the process' user ID to <number>. It is recommended that the user ID
|
110
|
+
# is dedicated to HAProxy or to a small set of similar daemons. HAProxy must
|
111
|
+
# be started with superuser privileges in order to be able to switch to another
|
112
|
+
# one. See also "gid" and "user".
|
113
|
+
#
|
114
|
+
attr_accessor :uid
|
115
|
+
|
116
|
+
#
|
117
|
+
# ulimit-n <number>
|
118
|
+
# Sets the maximum number of per-process file-descriptors to <number>. By
|
119
|
+
# default, it is automatically computed, so it is recommended not to use this
|
120
|
+
# option.
|
121
|
+
#
|
122
|
+
attr_accessor :ulimit_n
|
123
|
+
|
124
|
+
#
|
125
|
+
# user <user name>
|
126
|
+
# Similar to "uid" but uses the UID of user name <user name> from /etc/passwd.
|
127
|
+
# See also "uid" and "group".
|
128
|
+
#
|
129
|
+
attr_accessor :user
|
130
|
+
|
131
|
+
#
|
132
|
+
# stats socket <path> [(uid | user) <uid>] [(gid | group) <gid>] [mode <mode>]
|
133
|
+
# [level <level>]
|
134
|
+
#
|
135
|
+
# Creates a UNIX socket in stream mode at location <path>. Any previously
|
136
|
+
# existing socket will be backed up then replaced. Connections to this socket
|
137
|
+
# will return various statistics outputs and even allow some commands to be
|
138
|
+
# issued. Please consult section 9.2 "Unix Socket commands" for more details.
|
139
|
+
#
|
140
|
+
# An optional "level" parameter can be specified to restrict the nature of
|
141
|
+
# the commands that can be issued on the socket :
|
142
|
+
# - "user" is the least privileged level ; only non-sensitive stats can be
|
143
|
+
# read, and no change is allowed. It would make sense on systems where it
|
144
|
+
# is not easy to restrict access to the socket.
|
145
|
+
#
|
146
|
+
# - "operator" is the default level and fits most common uses. All data can
|
147
|
+
# be read, and only non-sensible changes are permitted (eg: clear max
|
148
|
+
# counters).
|
149
|
+
#
|
150
|
+
# - "admin" should be used with care, as everything is permitted (eg: clear
|
151
|
+
# all counters).
|
152
|
+
#
|
153
|
+
# On platforms which support it, it is possible to restrict access to this
|
154
|
+
# socket by specifying numerical IDs after "uid" and "gid", or valid user and
|
155
|
+
# group names after the "user" and "group" keywords. It is also possible to
|
156
|
+
# restrict permissions on the socket by passing an octal value after the "mode"
|
157
|
+
# keyword (same syntax as chmod). Depending on the platform, the permissions on
|
158
|
+
# the socket will be inherited from the directory which hosts it, or from the
|
159
|
+
# user the process is started with.
|
160
|
+
#
|
161
|
+
attr_accessor :stats_socket
|
162
|
+
|
163
|
+
#
|
164
|
+
# stats timeout <timeout, in milliseconds>
|
165
|
+
# The default timeout on the stats socket is set to 10 seconds. It is possible
|
166
|
+
# to change this value with "stats timeout". The value must be passed in
|
167
|
+
# milliseconds, or be suffixed by a time unit among { us, ms, s, m, h, d }.
|
168
|
+
#
|
169
|
+
attr_accessor :stats_timeout
|
170
|
+
|
171
|
+
#
|
172
|
+
# stats maxconn <connections>
|
173
|
+
# By default, the stats socket is limited to 10 concurrent connections. It is
|
174
|
+
# possible to change this value with "stats maxconn".
|
175
|
+
#
|
176
|
+
attr_accessor :stats_maxconn
|
177
|
+
|
178
|
+
#
|
179
|
+
# node <name>
|
180
|
+
# Only letters, digits, hyphen and underscore are allowed, like in DNS names.
|
181
|
+
#
|
182
|
+
# This statement is useful in HA configurations where two or more processes or
|
183
|
+
# servers share the same IP address. By setting a different node-name on all
|
184
|
+
# nodes, it becomes easy to immediately spot what server is handling the
|
185
|
+
# traffic.
|
186
|
+
#
|
187
|
+
attr_accessor :node
|
188
|
+
|
189
|
+
#
|
190
|
+
# description <text>
|
191
|
+
# Add a text that describes the instance.
|
192
|
+
#
|
193
|
+
# Please note that it is required to escape certain characters (# for example)
|
194
|
+
# and this text is inserted into a html page so you should avoid using
|
195
|
+
# "<" and ">" characters.
|
196
|
+
#
|
197
|
+
attr_accessor :description
|
198
|
+
|
199
|
+
#
|
200
|
+
# unix-bind [ prefix <prefix> ] [ mode <mode> ] [ user <user> ] [ uid <uid> ]
|
201
|
+
# [ group <group> ] [ gid <gid> ]
|
202
|
+
#
|
203
|
+
# Fixes common settings to UNIX listening sockets declared in "bind" statements.
|
204
|
+
# This is mainly used to simplify declaration of those UNIX sockets and reduce
|
205
|
+
# the risk of errors, since those settings are most commonly required but are
|
206
|
+
# also process-specific. The <prefix> setting can be used to force all socket
|
207
|
+
# path to be relative to that directory. This might be needed to access another
|
208
|
+
# component's chroot. Note that those paths are resolved before haproxy chroots
|
209
|
+
# itself, so they are absolute. The <mode>, <user>, <uid>, <group> and <gid>
|
210
|
+
# all have the same meaning as their homonyms used by the "bind" statement. If
|
211
|
+
# both are specified, the "bind" statement has priority, meaning that the
|
212
|
+
# "unix-bind" settings may be seen as process-wide default settings.
|
213
|
+
#
|
214
|
+
attr_accessor :unix_bind
|
215
|
+
|
216
|
+
#
|
217
|
+
# maxconn <number>
|
218
|
+
# Sets the maximum per-process number of concurrent connections to <number>. It
|
219
|
+
# is equivalent to the command-line argument "-n". Proxies will stop accepting
|
220
|
+
# connections when this limit is reached. The "ulimit-n" parameter is
|
221
|
+
# automatically adjusted according to this value. See also "ulimit-n".
|
222
|
+
#
|
223
|
+
attr_accessor :maxconn
|
224
|
+
|
225
|
+
#
|
226
|
+
# maxpipes <number>
|
227
|
+
# Sets the maximum per-process number of pipes to <number>. Currently, pipes
|
228
|
+
# are only used by kernel-based tcp splicing. Since a pipe contains two file
|
229
|
+
# descriptors, the "ulimit-n" value will be increased accordingly. The default
|
230
|
+
# value is maxconn/4, which seems to be more than enough for most heavy usages.
|
231
|
+
# The splice code dynamically allocates and releases pipes, and can fall back
|
232
|
+
# to standard copy, so setting this value too low may only impact performance.
|
233
|
+
#
|
234
|
+
attr_accessor :maxpipes
|
235
|
+
|
236
|
+
#
|
237
|
+
# noepoll
|
238
|
+
# Disables the use of the "epoll" event polling system on Linux. It is
|
239
|
+
# equivalent to the command-line argument "-de". The next polling system
|
240
|
+
# used will generally be "poll". See also "nosepoll", and "nopoll".
|
241
|
+
#
|
242
|
+
attr_accessor :noepoll
|
243
|
+
|
244
|
+
#
|
245
|
+
# nokqueue
|
246
|
+
# Disables the use of the "kqueue" event polling system on BSD. It is
|
247
|
+
# equivalent to the command-line argument "-dk". The next polling system
|
248
|
+
# used will generally be "poll". See also "nopoll".
|
249
|
+
#
|
250
|
+
attr_accessor :nokqueue
|
251
|
+
|
252
|
+
#
|
253
|
+
# nopoll
|
254
|
+
# Disables the use of the "poll" event polling system. It is equivalent to the
|
255
|
+
# command-line argument "-dp". The next polling system used will be "select".
|
256
|
+
# It should never be needed to disable "poll" since it's available on all
|
257
|
+
# platforms supported by HAProxy. See also "nosepoll", and "nopoll" and
|
258
|
+
# "nokqueue".
|
259
|
+
#
|
260
|
+
attr_accessor :nopoll
|
261
|
+
|
262
|
+
#
|
263
|
+
# nosepoll
|
264
|
+
# Disables the use of the "speculative epoll" event polling system on Linux. It
|
265
|
+
# is equivalent to the command-line argument "-ds". The next polling system
|
266
|
+
# used will generally be "epoll". See also "nosepoll", and "nopoll".
|
267
|
+
#
|
268
|
+
attr_accessor :nosepoll
|
269
|
+
|
270
|
+
#
|
271
|
+
# nosplice
|
272
|
+
# Disables the use of kernel tcp splicing between sockets on Linux. It is
|
273
|
+
# equivalent to the command line argument "-dS". Data will then be copied
|
274
|
+
# using conventional and more portable recv/send calls. Kernel tcp splicing is
|
275
|
+
# limited to some very recent instances of kernel 2.6. Most versions between
|
276
|
+
# 2.6.25 and 2.6.28 are buggy and will forward corrupted data, so they must not
|
277
|
+
# be used. This option makes it easier to globally disable kernel splicing in
|
278
|
+
# case of doubt. See also "option splice-auto", "option splice-request" and
|
279
|
+
# "option splice-response".
|
280
|
+
#
|
281
|
+
attr_accessor :nosplice
|
282
|
+
|
283
|
+
#
|
284
|
+
# spread-checks <0..50, in percent>
|
285
|
+
# Sometimes it is desirable to avoid sending health checks to servers at exact
|
286
|
+
# intervals, for instance when many logical servers are located on the same
|
287
|
+
# physical server. With the help of this parameter, it becomes possible to add
|
288
|
+
# some randomness in the check interval between 0 and +/- 50%. A value between
|
289
|
+
# 2 and 5 seems to show good results. The default value remains at 0.
|
290
|
+
#
|
291
|
+
attr_accessor :spread_checks
|
292
|
+
|
293
|
+
#
|
294
|
+
# tune.bufsize <number>
|
295
|
+
# Sets the buffer size to this size (in bytes). Lower values allow more
|
296
|
+
# sessions to coexist in the same amount of RAM, and higher values allow some
|
297
|
+
# applications with very large cookies to work. The default value is 16384 and
|
298
|
+
# can be changed at build time. It is strongly recommended not to change this
|
299
|
+
# from the default value, as very low values will break some services such as
|
300
|
+
# statistics, and values larger than default size will increase memory usage,
|
301
|
+
# possibly causing the system to run out of memory. At least the global maxconn
|
302
|
+
# parameter should be decreased by the same factor as this one is increased.
|
303
|
+
#
|
304
|
+
attr_accessor :tune_bufsize
|
305
|
+
|
306
|
+
#
|
307
|
+
# tune.chksize <number>
|
308
|
+
# Sets the check buffer size to this size (in bytes). Higher values may help
|
309
|
+
# find string or regex patterns in very large pages, though doing so may imply
|
310
|
+
# more memory and CPU usage. The default value is 16384 and can be changed at
|
311
|
+
# build time. It is not recommended to change this value, but to use better
|
312
|
+
# checks whenever possible.
|
313
|
+
#
|
314
|
+
attr_accessor :tune_chksize
|
315
|
+
|
316
|
+
#
|
317
|
+
# tune.maxaccept <number>
|
318
|
+
# Sets the maximum number of consecutive accepts that a process may perform on
|
319
|
+
# a single wake up. High values give higher priority to high connection rates,
|
320
|
+
# while lower values give higher priority to already established connections.
|
321
|
+
# This value is limited to 100 by default in single process mode. However, in
|
322
|
+
# multi-process mode (nbproc > 1), it defaults to 8 so that when one process
|
323
|
+
# wakes up, it does not take all incoming connections for itself and leaves a
|
324
|
+
# part of them to other processes. Setting this value to -1 completely disables
|
325
|
+
# the limitation. It should normally not be needed to tweak this value.
|
326
|
+
#
|
327
|
+
attr_accessor :tune_maxaccept
|
328
|
+
|
329
|
+
#
|
330
|
+
# tune.maxpollevents <number>
|
331
|
+
# Sets the maximum amount of events that can be processed at once in a call to
|
332
|
+
# the polling system. The default value is adapted to the operating system. It
|
333
|
+
# has been noticed that reducing it below 200 tends to slightly decrease
|
334
|
+
# latency at the expense of network bandwidth, and increasing it above 200
|
335
|
+
# tends to trade latency for slightly increased bandwidth.
|
336
|
+
#
|
337
|
+
attr_accessor :tune_maxpollevents
|
338
|
+
|
339
|
+
#
|
340
|
+
# tune.maxrewrite <number>
|
341
|
+
# Sets the reserved buffer space to this size in bytes. The reserved space is
|
342
|
+
# used for header rewriting or appending. The first reads on sockets will never
|
343
|
+
# fill more than bufsize-maxrewrite. Historically it has defaulted to half of
|
344
|
+
# bufsize, though that does not make much sense since there are rarely large
|
345
|
+
# numbers of headers to add. Setting it too high prevents processing of large
|
346
|
+
# requests or responses. Setting it too low prevents addition of new headers
|
347
|
+
# to already large requests or to POST requests. It is generally wise to set it
|
348
|
+
# to about 1024. It is automatically readjusted to half of bufsize if it is
|
349
|
+
# larger than that. This means you don't have to worry about it when changing
|
350
|
+
# bufsize.
|
351
|
+
#
|
352
|
+
attr_accessor :tune_maxrewrite
|
353
|
+
|
354
|
+
# tune.rcvbuf.client <number>
|
355
|
+
# Forces the kernel socket receive buffer size on the client or the server side
|
356
|
+
# to the specified value in bytes. This value applies to all TCP/HTTP frontends
|
357
|
+
# and backends. It should normally never be set, and the default size (0) lets
|
358
|
+
# the kernel autotune this value depending on the amount of available memory.
|
359
|
+
# However it can sometimes help to set it to very low values (eg: 4096) in
|
360
|
+
# order to save kernel memory by preventing it from buffering too large amounts
|
361
|
+
# of received data. Lower values will significantly increase CPU usage though.
|
362
|
+
#
|
363
|
+
attr_accessor :tune_rcvbuf_client
|
364
|
+
|
365
|
+
# tune.rcvbuf.server <number>
|
366
|
+
# Forces the kernel socket receive buffer size on the client or the server side
|
367
|
+
# to the specified value in bytes. This value applies to all TCP/HTTP frontends
|
368
|
+
# and backends. It should normally never be set, and the default size (0) lets
|
369
|
+
# the kernel autotune this value depending on the amount of available memory.
|
370
|
+
# However it can sometimes help to set it to very low values (eg: 4096) in
|
371
|
+
# order to save kernel memory by preventing it from buffering too large amounts
|
372
|
+
# of received data. Lower values will significantly increase CPU usage though.
|
373
|
+
#
|
374
|
+
attr_accessor :tune_rcvbuf_server
|
375
|
+
|
376
|
+
#
|
377
|
+
# tune.sndbuf.client <number>
|
378
|
+
# Forces the kernel socket send buffer size on the client or the server side to
|
379
|
+
# the specified value in bytes. This value applies to all TCP/HTTP frontends
|
380
|
+
# and backends. It should normally never be set, and the default size (0) lets
|
381
|
+
# the kernel autotune this value depending on the amount of available memory.
|
382
|
+
# However it can sometimes help to set it to very low values (eg: 4096) in
|
383
|
+
# order to save kernel memory by preventing it from buffering too large amounts
|
384
|
+
# of received data. Lower values will significantly increase CPU usage though.
|
385
|
+
# Another use case is to prevent write timeouts with extremely slow clients due
|
386
|
+
# to the kernel waiting for a large part of the buffer to be read before
|
387
|
+
# notifying haproxy again.
|
388
|
+
#
|
389
|
+
attr_accessor :tune_sndbuf_client
|
390
|
+
|
391
|
+
#
|
392
|
+
# tune.sndbuf.server <number>
|
393
|
+
# Forces the kernel socket send buffer size on the client or the server side to
|
394
|
+
# the specified value in bytes. This value applies to all TCP/HTTP frontends
|
395
|
+
# and backends. It should normally never be set, and the default size (0) lets
|
396
|
+
# the kernel autotune this value depending on the amount of available memory.
|
397
|
+
# However it can sometimes help to set it to very low values (eg: 4096) in
|
398
|
+
# order to save kernel memory by preventing it from buffering too large amounts
|
399
|
+
# of received data. Lower values will significantly increase CPU usage though.
|
400
|
+
# Another use case is to prevent write timeouts with extremely slow clients due
|
401
|
+
# to the kernel waiting for a large part of the buffer to be read before
|
402
|
+
# notifying haproxy again.
|
403
|
+
#
|
404
|
+
attr_accessor :tune_sndbuf_server
|
405
|
+
|
406
|
+
#
|
407
|
+
# debug
|
408
|
+
# Enables debug mode which dumps to stdout all exchanges, and disables forking
|
409
|
+
# into background. It is the equivalent of the command-line argument "-d". It
|
410
|
+
# should never be used in a production configuration since it may prevent full
|
411
|
+
# system startup.
|
412
|
+
#
|
413
|
+
attr_accessor :debug
|
414
|
+
|
415
|
+
#
|
416
|
+
# quiet
|
417
|
+
# Do not display any message during startup. It is equivalent to the command-
|
418
|
+
# line argument "-q".
|
419
|
+
#
|
420
|
+
attr_accessor :quiet
|
421
|
+
|
422
|
+
#
|
423
|
+
# Returns a new RhaproxyGlobal Object
|
424
|
+
#
|
425
|
+
def initialize()
|
426
|
+
end
|
427
|
+
|
428
|
+
#
|
429
|
+
# Compile the HAproxy global configuration
|
430
|
+
#
|
431
|
+
def config
|
432
|
+
|
433
|
+
conf = option_string()
|
434
|
+
|
435
|
+
return conf
|
436
|
+
|
437
|
+
end
|
438
|
+
|
439
|
+
private
|
440
|
+
|
441
|
+
def option_string()
|
442
|
+
|
443
|
+
ostring = " " + "global " + "\n"
|
444
|
+
|
445
|
+
if @chroot
|
446
|
+
ostring += " " + "chroot " + @chroot.to_s + "\n"
|
447
|
+
end
|
448
|
+
|
449
|
+
if @daemon
|
450
|
+
ostring += " " + "daemon " + "\n"
|
451
|
+
end
|
452
|
+
|
453
|
+
if @gid
|
454
|
+
ostring += " " + "gid " + @gid.to_s + "\n"
|
455
|
+
end
|
456
|
+
|
457
|
+
if @group
|
458
|
+
ostring += " " + "group " + @group.to_s + "\n"
|
459
|
+
end
|
460
|
+
|
461
|
+
if @log
|
462
|
+
ostring += " " + "log " + @log.to_s + "\n"
|
463
|
+
end
|
464
|
+
|
465
|
+
if @nbproc
|
466
|
+
ostring += " " + "nbproc " + @nbproc.to_s + "\n"
|
467
|
+
end
|
468
|
+
|
469
|
+
if @pidfile
|
470
|
+
ostring += " " + "pidfile " + @pidfile.to_s + "\n"
|
471
|
+
end
|
472
|
+
|
473
|
+
if @uid
|
474
|
+
ostring += " " + "uid " + @uid.to_s + "\n"
|
475
|
+
end
|
476
|
+
|
477
|
+
if @ulimit_n
|
478
|
+
ostring += " " + "ulimit-n " + @ulimit_n.to_s + "\n"
|
479
|
+
end
|
480
|
+
|
481
|
+
if @user
|
482
|
+
ostring += " " + "user " + @user.to_s + "\n"
|
483
|
+
end
|
484
|
+
|
485
|
+
if @stats_socket
|
486
|
+
ostring += " " + "stats socket " + @stats_socket.to_s + "\n"
|
487
|
+
end
|
488
|
+
|
489
|
+
if @stats_timeout
|
490
|
+
ostring += " " + "stats timeout " + @stats_timeout.to_s + "\n"
|
491
|
+
end
|
492
|
+
|
493
|
+
if @stats_maxconn
|
494
|
+
ostring += " " + "stats maxconn " + @stats_maxconn.to_s + "\n"
|
495
|
+
end
|
496
|
+
|
497
|
+
if @node
|
498
|
+
ostring += " " + "node " + @node.to_s + "\n"
|
499
|
+
end
|
500
|
+
|
501
|
+
if @description
|
502
|
+
ostring += " " + "description " + @description.to_s + "\n"
|
503
|
+
end
|
504
|
+
|
505
|
+
if @unix_bind
|
506
|
+
ostring += " " + "unix-bind " + @unix_bind.to_s + "\n"
|
507
|
+
end
|
508
|
+
|
509
|
+
if @maxconn
|
510
|
+
ostring += " " + "maxconn " + @maxconn.to_s + "\n"
|
511
|
+
end
|
512
|
+
|
513
|
+
if @maxpipes
|
514
|
+
ostring += " " + "maxpipes " + @maxpipes.to_s + "\n"
|
515
|
+
end
|
516
|
+
|
517
|
+
if @noepoll
|
518
|
+
ostring += " " + "noepoll " + "\n"
|
519
|
+
end
|
520
|
+
|
521
|
+
if @nokqueue
|
522
|
+
ostring += " " + "nokqueue " + "\n"
|
523
|
+
end
|
524
|
+
|
525
|
+
if @nopoll
|
526
|
+
ostring += " " + "nopoll " + "\n"
|
527
|
+
end
|
528
|
+
|
529
|
+
if @nosepoll
|
530
|
+
ostring += " " + "nosepoll " + "\n"
|
531
|
+
end
|
532
|
+
|
533
|
+
if @nosplice
|
534
|
+
ostring += " " + "nosplice " + "\n"
|
535
|
+
end
|
536
|
+
|
537
|
+
if @spread_checks
|
538
|
+
ostring += " " + "spread-checks " + @spread_checks.to_s + "\n"
|
539
|
+
end
|
540
|
+
|
541
|
+
if @tune_bufsize
|
542
|
+
ostring += " " + "tune.bufsize " + @tune_bufsize.to_s + "\n"
|
543
|
+
end
|
544
|
+
|
545
|
+
if @tune_chksize
|
546
|
+
ostring += " " + "tune.chksize " + @tune_chksize.to_s + "\n"
|
547
|
+
end
|
548
|
+
|
549
|
+
if @tune_maxaccept
|
550
|
+
ostring += " " + "tune.maxaccept " + @tune_maxaccept.to_s + "\n"
|
551
|
+
end
|
552
|
+
|
553
|
+
if @tune_maxpollevents
|
554
|
+
ostring += " " + "tune.maxpollevents " + @tune_maxpollevents.to_s + "\n"
|
555
|
+
end
|
556
|
+
|
557
|
+
if @tune_maxrewrite
|
558
|
+
ostring += " " + "tune.maxrewrite " + @tune_maxrewrite.to_s + "\n"
|
559
|
+
end
|
560
|
+
|
561
|
+
if @tune_rcvbuf_client
|
562
|
+
ostring += " " + "tune.rcvbuf.client " + @tune_rcvbuf_client.to_s + "\n"
|
563
|
+
end
|
564
|
+
|
565
|
+
if @tune_rcvbuf_server
|
566
|
+
ostring += " " + "tune.rcvbuf.server " + @tune_rcvbuf_server.to_s + "\n"
|
567
|
+
end
|
568
|
+
|
569
|
+
if @tune_sndbuf_client
|
570
|
+
ostring += " " + "tune.sndbuf.client " + @tune_sndbuf_client.to_s + "\n"
|
571
|
+
end
|
572
|
+
|
573
|
+
if @tune_sndbuf_server
|
574
|
+
ostring += " " + "tune.sndbuf.server " + @tune_sndbuf_server.to_s + "\n"
|
575
|
+
end
|
576
|
+
|
577
|
+
if @debug
|
578
|
+
ostring += " " + "debug " + "\n"
|
579
|
+
end
|
580
|
+
|
581
|
+
if @quiet
|
582
|
+
ostring += " " + "quiet " + "\n"
|
583
|
+
end
|
584
|
+
|
585
|
+
ostring += "\n"
|
586
|
+
|
587
|
+
return ostring
|
588
|
+
end
|
589
|
+
end
|
590
|
+
|