unicorn 4.9.0 → 5.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitattributes +5 -0
- data/.manifest +3 -10
- data/Application_Timeouts +3 -3
- data/DESIGN +2 -4
- data/Documentation/unicorn.1.txt +8 -5
- data/Documentation/unicorn_rails.1.txt +2 -2
- data/FAQ +17 -8
- data/GIT-VERSION-FILE +1 -1
- data/GIT-VERSION-GEN +1 -1
- data/GNUmakefile +6 -1
- data/ISSUES +20 -28
- data/KNOWN_ISSUES +9 -9
- data/LATEST +28 -29
- data/Links +14 -17
- data/NEWS +159 -0
- data/PHILOSOPHY +0 -6
- data/README +22 -17
- data/SIGNALS +1 -1
- data/Sandbox +4 -4
- data/TUNING +11 -8
- data/bin/unicorn +1 -1
- data/bin/unicorn_rails +1 -1
- data/examples/nginx.conf +10 -11
- data/examples/unicorn.conf.rb +1 -4
- data/examples/unicorn.socket +11 -0
- data/examples/unicorn@.service +26 -0
- data/ext/unicorn_http/extconf.rb +1 -0
- data/ext/unicorn_http/httpdate.c +1 -1
- data/ext/unicorn_http/unicorn_http.c +267 -334
- data/ext/unicorn_http/unicorn_http.rl +89 -156
- data/lib/unicorn/configurator.rb +17 -31
- data/lib/unicorn/const.rb +2 -25
- data/lib/unicorn/http_request.rb +22 -33
- data/lib/unicorn/http_response.rb +13 -31
- data/lib/unicorn/http_server.rb +129 -122
- data/lib/unicorn/socket_helper.rb +36 -72
- data/lib/unicorn/stream_input.rb +3 -3
- data/lib/unicorn/tmpio.rb +0 -5
- data/lib/unicorn/util.rb +2 -1
- data/lib/unicorn/version.rb +1 -1
- data/lib/unicorn/worker.rb +3 -15
- data/lib/unicorn.rb +10 -18
- data/man/man1/unicorn.1 +7 -5
- data/man/man1/unicorn_rails.1 +2 -2
- data/t/hijack.ru +2 -1
- data/t/t0200-rack-hijack.sh +5 -2
- data/test/exec/test_exec.rb +52 -0
- data/test/test_helper.rb +3 -2
- data/test/unit/test_http_parser_ng.rb +16 -114
- data/test/unit/test_response.rb +28 -16
- data/test/unit/test_socket_helper.rb +1 -1
- data/unicorn.gemspec +10 -1
- metadata +13 -23
- data/examples/git.ru +0 -13
- data/lib/unicorn/app/exec_cgi.rb +0 -154
- data/lib/unicorn/app/inetd.rb +0 -109
- data/lib/unicorn/ssl_client.rb +0 -11
- data/lib/unicorn/ssl_configurator.rb +0 -104
- data/lib/unicorn/ssl_server.rb +0 -42
- data/t/t0016-trust-x-forwarded-false.sh +0 -30
- data/t/t0017-trust-x-forwarded-true.sh +0 -30
- data/test/unit/test_http_parser_xftrust.rb +0 -38
- data/test/unit/test_sni_hostnames.rb +0 -47
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 277fcaa980e2e0c38def0c8d5d2a62de55ad659d
|
|
4
|
+
data.tar.gz: 315f01cb5df3ab7c606cc7071f457431161a34fb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 81284810b2b5fa7575737c865ced8e90491a22e24db092a15f381da8a802608e12c5c9a7beea5d99603cd2c167fb5ea5d937708b26c1e28f66ee80980a06b7ae
|
|
7
|
+
data.tar.gz: 4ca0c767edc69c6e93b5b58329266ac81234ff1da9b4640a1c19bc97f3a3e9d8911727205e47a4ad1a89c328042096bd213a85a367717687e9adc715f635810b
|
data/.gitattributes
ADDED
data/.manifest
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
.CHANGELOG.old
|
|
2
2
|
.document
|
|
3
|
+
.gitattributes
|
|
3
4
|
.gitignore
|
|
4
5
|
.mailmap
|
|
5
6
|
.manifest
|
|
@@ -36,13 +37,14 @@ bin/unicorn
|
|
|
36
37
|
bin/unicorn_rails
|
|
37
38
|
examples/big_app_gc.rb
|
|
38
39
|
examples/echo.ru
|
|
39
|
-
examples/git.ru
|
|
40
40
|
examples/init.sh
|
|
41
41
|
examples/logger_mp_safe.rb
|
|
42
42
|
examples/logrotate.conf
|
|
43
43
|
examples/nginx.conf
|
|
44
44
|
examples/unicorn.conf.minimal.rb
|
|
45
45
|
examples/unicorn.conf.rb
|
|
46
|
+
examples/unicorn.socket
|
|
47
|
+
examples/unicorn@.service
|
|
46
48
|
ext/unicorn_http/CFLAGS
|
|
47
49
|
ext/unicorn_http/c_util.h
|
|
48
50
|
ext/unicorn_http/common_field_optimization.h
|
|
@@ -54,8 +56,6 @@ ext/unicorn_http/unicorn_http.c
|
|
|
54
56
|
ext/unicorn_http/unicorn_http.rl
|
|
55
57
|
ext/unicorn_http/unicorn_http_common.rl
|
|
56
58
|
lib/unicorn.rb
|
|
57
|
-
lib/unicorn/app/exec_cgi.rb
|
|
58
|
-
lib/unicorn/app/inetd.rb
|
|
59
59
|
lib/unicorn/app/old_rails.rb
|
|
60
60
|
lib/unicorn/app/old_rails/static.rb
|
|
61
61
|
lib/unicorn/cgi_wrapper.rb
|
|
@@ -68,9 +68,6 @@ lib/unicorn/launcher.rb
|
|
|
68
68
|
lib/unicorn/oob_gc.rb
|
|
69
69
|
lib/unicorn/preread_input.rb
|
|
70
70
|
lib/unicorn/socket_helper.rb
|
|
71
|
-
lib/unicorn/ssl_client.rb
|
|
72
|
-
lib/unicorn/ssl_configurator.rb
|
|
73
|
-
lib/unicorn/ssl_server.rb
|
|
74
71
|
lib/unicorn/stream_input.rb
|
|
75
72
|
lib/unicorn/tee_input.rb
|
|
76
73
|
lib/unicorn/tmpio.rb
|
|
@@ -121,8 +118,6 @@ t/t0013.ru
|
|
|
121
118
|
t/t0014-rewindable-input-true.sh
|
|
122
119
|
t/t0014.ru
|
|
123
120
|
t/t0015-configurator-internals.sh
|
|
124
|
-
t/t0016-trust-x-forwarded-false.sh
|
|
125
|
-
t/t0017-trust-x-forwarded-true.sh
|
|
126
121
|
t/t0018-write-on-close.sh
|
|
127
122
|
t/t0019-max_header_len.sh
|
|
128
123
|
t/t0020-at_exit-handler.sh
|
|
@@ -149,12 +144,10 @@ test/unit/test_configurator.rb
|
|
|
149
144
|
test/unit/test_droplet.rb
|
|
150
145
|
test/unit/test_http_parser.rb
|
|
151
146
|
test/unit/test_http_parser_ng.rb
|
|
152
|
-
test/unit/test_http_parser_xftrust.rb
|
|
153
147
|
test/unit/test_request.rb
|
|
154
148
|
test/unit/test_response.rb
|
|
155
149
|
test/unit/test_server.rb
|
|
156
150
|
test/unit/test_signals.rb
|
|
157
|
-
test/unit/test_sni_hostnames.rb
|
|
158
151
|
test/unit/test_socket_helper.rb
|
|
159
152
|
test/unit/test_stream_input.rb
|
|
160
153
|
test/unit/test_tee_input.rb
|
data/Application_Timeouts
CHANGED
|
@@ -4,10 +4,10 @@ This article focuses on _application_ setup for Rack applications, but
|
|
|
4
4
|
can be expanded to all applications that connect to external resources
|
|
5
5
|
and expect short response times.
|
|
6
6
|
|
|
7
|
-
This article is not specific to
|
|
7
|
+
This article is not specific to unicorn, but exists to discourage
|
|
8
8
|
the overuse of the built-in
|
|
9
9
|
{timeout}[link:Unicorn/Configurator.html#method-i-timeout] directive
|
|
10
|
-
in
|
|
10
|
+
in unicorn.
|
|
11
11
|
|
|
12
12
|
== ALL External Resources Are Considered Unreliable
|
|
13
13
|
|
|
@@ -71,7 +71,7 @@ handle network/server failures.
|
|
|
71
71
|
== The Last Line Of Defense
|
|
72
72
|
|
|
73
73
|
The {timeout}[link:Unicorn/Configurator.html#method-i-timeout] mechanism
|
|
74
|
-
in
|
|
74
|
+
in unicorn is an extreme solution that should be avoided whenever
|
|
75
75
|
possible. It will help catch bugs in your application where and when
|
|
76
76
|
your application forgets to use timeouts, but it is expensive as it
|
|
77
77
|
kills and respawns a worker process.
|
data/DESIGN
CHANGED
|
@@ -7,9 +7,7 @@
|
|
|
7
7
|
all clients down, just one. Only UNIX-like systems supporting
|
|
8
8
|
fork() and file descriptor inheritance are supported.
|
|
9
9
|
|
|
10
|
-
* The Ragel+C HTTP parser is taken from Mongrel.
|
|
11
|
-
only non-Ruby part and there are no plans to add any more
|
|
12
|
-
non-Ruby components.
|
|
10
|
+
* The Ragel+C HTTP parser is taken from Mongrel.
|
|
13
11
|
|
|
14
12
|
* All HTTP parsing and I/O is done much like Mongrel:
|
|
15
13
|
1. read/parse HTTP request headers in full
|
|
@@ -31,7 +29,7 @@
|
|
|
31
29
|
* One master process spawns and reaps worker processes. The
|
|
32
30
|
Rack application itself is called only within the worker process (but
|
|
33
31
|
can be loaded within the master). A copy-on-write friendly garbage
|
|
34
|
-
collector like the one found in Ruby 2.0.
|
|
32
|
+
collector like the one found in mainline Ruby 2.0.0 and later
|
|
35
33
|
can be used to minimize memory usage along with the "preload_app true"
|
|
36
34
|
directive (see Unicorn::Configurator).
|
|
37
35
|
|
data/Documentation/unicorn.1.txt
CHANGED
|
@@ -166,9 +166,12 @@ variable internally when doing transparent upgrades.
|
|
|
166
166
|
UNICORN_FD is a comma-delimited list of one or more file descriptors
|
|
167
167
|
used to implement USR2 upgrades. Init systems may bind listen sockets
|
|
168
168
|
itself and spawn unicorn with UNICORN_FD set to the file descriptor
|
|
169
|
-
numbers of the listen socket(s).
|
|
170
|
-
|
|
171
|
-
|
|
169
|
+
numbers of the listen socket(s).
|
|
170
|
+
|
|
171
|
+
As of unicorn 5.0, LISTEN_PID and LISTEN_FDS are used for socket
|
|
172
|
+
activation as documented in the sd_listen_fds(3) manpage. Users
|
|
173
|
+
relying on this feature do not need to specify a listen socket in
|
|
174
|
+
the unicorn config file.
|
|
172
175
|
|
|
173
176
|
# SEE ALSO
|
|
174
177
|
|
|
@@ -180,6 +183,6 @@ startup, otherwise the socket will be closed.
|
|
|
180
183
|
* [Rackup HowTo][3]
|
|
181
184
|
|
|
182
185
|
[1]: http://unicorn.bogomips.org/
|
|
183
|
-
[2]: http://
|
|
184
|
-
[3]:
|
|
186
|
+
[2]: http://www.rubydoc.info/github/rack/rack/
|
|
187
|
+
[3]: https://github.com/rack/rack/wiki/tutorial-rackup-howto
|
|
185
188
|
[4]: http://unicorn.bogomips.org/SIGNALS.html
|
|
@@ -170,6 +170,6 @@ used by Unicorn.
|
|
|
170
170
|
* [Rackup HowTo][3]
|
|
171
171
|
|
|
172
172
|
[1]: http://unicorn.bogomips.org/
|
|
173
|
-
[2]: http://
|
|
174
|
-
[3]:
|
|
173
|
+
[2]: http://www.rubydoc.info/github/rack/rack/
|
|
174
|
+
[3]: https://github.com/rack/rack/wiki/tutorial-rackup-howto
|
|
175
175
|
[4]: http://unicorn.bogomips.org/SIGNALS.html
|
data/FAQ
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
= Frequently Asked Questions about Unicorn
|
|
2
2
|
|
|
3
|
+
=== Why is nginx getting ECONNRESET as a reverse proxy?
|
|
4
|
+
|
|
5
|
+
Request body data (commonly from POST and PUT requests) may not be
|
|
6
|
+
drained entirely by the application. This may happen when request
|
|
7
|
+
bodies are gzipped, as unicorn reads request body data lazily to avoid
|
|
8
|
+
overhead from bad requests.
|
|
9
|
+
|
|
10
|
+
Ref: http://mid.gmane.org/FC91211E-FD32-432C-92FC-0318714C2170@zendesk.com
|
|
11
|
+
|
|
3
12
|
=== Why aren't my Rails log files rotated when I use SIGUSR1?
|
|
4
13
|
|
|
5
14
|
The Rails autoflush_log option must remain disabled with multiprocess
|
|
@@ -8,14 +17,6 @@ partially written and lead to corruption in the presence of multiple
|
|
|
8
17
|
processes. With reasonable amounts of logging, the performance impact
|
|
9
18
|
of autoflush_log should be negligible on Linux and other modern kernels.
|
|
10
19
|
|
|
11
|
-
=== I've installed Rack 1.1.x, why can't Unicorn load Rails (2.3.5)?
|
|
12
|
-
|
|
13
|
-
Rails 2.3.5 is not compatible with Rack 1.1.x. Unicorn is compatible
|
|
14
|
-
with both Rack 1.1.x and Rack 1.0.x, and RubyGems will load the latest
|
|
15
|
-
version of Rack installed on the system. Uninstalling the Rack 1.1.x
|
|
16
|
-
gem should solve gem loading issues with Rails 2.3.5. Rails 2.3.6
|
|
17
|
-
and later correctly support Rack 1.1.x.
|
|
18
|
-
|
|
19
20
|
=== Why are my redirects going to "http" URLs when my site uses https?
|
|
20
21
|
|
|
21
22
|
If your site is entirely behind https, then Rack applications that use
|
|
@@ -59,3 +60,11 @@ queue makes failover to a different machine more difficult.
|
|
|
59
60
|
|
|
60
61
|
See the TUNING and Unicorn::Configurator documents for more information
|
|
61
62
|
on :backlog-related topics.
|
|
63
|
+
|
|
64
|
+
=== I've installed Rack 1.1.x, why can't Unicorn load Rails (2.3.5)?
|
|
65
|
+
|
|
66
|
+
Rails 2.3.5 is not compatible with Rack 1.1.x. Unicorn is compatible
|
|
67
|
+
with both Rack 1.1.x and Rack 1.0.x, and RubyGems will load the latest
|
|
68
|
+
version of Rack installed on the system. Uninstalling the Rack 1.1.x
|
|
69
|
+
gem should solve gem loading issues with Rails 2.3.5. Rails 2.3.6
|
|
70
|
+
and later correctly support Rack 1.1.x.
|
data/GIT-VERSION-FILE
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
GIT_VERSION =
|
|
1
|
+
GIT_VERSION = 5.0.1
|
data/GIT-VERSION-GEN
CHANGED
data/GNUmakefile
CHANGED
|
@@ -86,10 +86,14 @@ test-unit: $(wildcard test/unit/test_*.rb)
|
|
|
86
86
|
$(slow_tests): $(test_prefix)/.stamp
|
|
87
87
|
@$(MAKE) $(shell $(awk_slow) $@)
|
|
88
88
|
|
|
89
|
+
# ensure we can require just the HTTP parser without the rest of unicorn
|
|
90
|
+
test-require: $(ext)/unicorn_http.$(DLEXT)
|
|
91
|
+
$(RUBY) --disable-gems -I$(ext) -runicorn_http -e Unicorn
|
|
92
|
+
|
|
89
93
|
test-integration: $(test_prefix)/.stamp
|
|
90
94
|
$(MAKE) -C t
|
|
91
95
|
|
|
92
|
-
check: test test-integration
|
|
96
|
+
check: test-require test test-integration
|
|
93
97
|
test-all: check
|
|
94
98
|
|
|
95
99
|
TEST_OPTS = -v
|
|
@@ -174,6 +178,7 @@ doc: .document $(ext)/unicorn_http.c man html .olddoc.yml $(PLACEHOLDERS)
|
|
|
174
178
|
$(RDOC) -f oldweb
|
|
175
179
|
$(OLDDOC) merge
|
|
176
180
|
install -m644 COPYING doc/COPYING
|
|
181
|
+
install -m644 NEWS.atom.xml doc/NEWS.atom.xml
|
|
177
182
|
install -m644 $(shell LC_ALL=C grep '^[A-Z]' .document) doc/
|
|
178
183
|
install -m644 $(man1_paths) doc/
|
|
179
184
|
tar cf - $$(git ls-files examples/) | (cd doc && tar xf -)
|
data/ISSUES
CHANGED
|
@@ -9,7 +9,10 @@ submit patches and/or obtain support after you have searched the
|
|
|
9
9
|
* Cc: all participants in a thread or commit, as subscription is optional
|
|
10
10
|
* Do not {top post}[http://catb.org/jargon/html/T/top-post.html] in replies
|
|
11
11
|
* Quote as little as possible of the message you're replying to
|
|
12
|
-
* Do not send HTML mail, it will
|
|
12
|
+
* Do not send HTML mail or images, it will be flagged as spam
|
|
13
|
+
* Anonymous and pseudonymous messages will always be welcome.
|
|
14
|
+
* The email submission port (587) is enabled on the bogomips.org MX:
|
|
15
|
+
http://bogomips.org/unicorn-public/20141004232241.GA23908@dcvr.yhbt.net/t/
|
|
13
16
|
|
|
14
17
|
If your issue is of a sensitive nature or you're just shy in public,
|
|
15
18
|
then feel free to email us privately at mailto:unicorn@bogomips.org
|
|
@@ -62,39 +65,28 @@ document distributed with git) on guidelines for patch submission.
|
|
|
62
65
|
|
|
63
66
|
* public: mailto:unicorn-public@bogomips.org
|
|
64
67
|
* private: mailto:unicorn@bogomips.org
|
|
68
|
+
* nntp://news.gmane.org/gmane.comp.lang.ruby.unicorn.general
|
|
69
|
+
* nntp://news.public-inbox.org/inbox.comp.lang.ruby.unicorn
|
|
70
|
+
* http://bogomips.org/unicorn-public/
|
|
65
71
|
|
|
66
72
|
We operate a {public-inbox}[http://public-inbox.org/] which
|
|
67
|
-
feeds the mailing list.
|
|
68
|
-
|
|
69
|
-
to mailto:unicorn-public+subscribe@bogomips.org
|
|
73
|
+
feeds the mailing list. Subscription is optional, so Cc:
|
|
74
|
+
all participants.
|
|
70
75
|
|
|
71
|
-
|
|
72
|
-
fashion to tools such as slrnpull, fetchmail, or getmail. ssoma
|
|
73
|
-
subscription instructions:
|
|
76
|
+
You can follow along via NNTP:
|
|
74
77
|
|
|
75
|
-
|
|
76
|
-
|
|
78
|
+
nntp://news.public-inbox.org/inbox.comp.lang.ruby.unicorn
|
|
79
|
+
nntp://news.gmane.org/gmane.comp.lang.ruby.unicorn.general
|
|
77
80
|
|
|
78
|
-
|
|
79
|
-
# ssoma will not touch existing messages)
|
|
80
|
-
# If you prefer mbox, use mbox:/path/to/mbox as the last argument
|
|
81
|
-
# You may also use imap://$MAILSERVER/INBOX for an IMAP account
|
|
82
|
-
# or imaps:// for an IMAPS account, as well.
|
|
83
|
-
ssoma add $LISTNAME $URL maildir:/path/to/maildir
|
|
81
|
+
Or Atom feeds:
|
|
84
82
|
|
|
85
|
-
|
|
86
|
-
mutt -f /path/to/maildir # (or /path/to/mbox)
|
|
83
|
+
http://bogomips.org/unicorn-public/new.atom
|
|
87
84
|
|
|
88
|
-
|
|
89
|
-
|
|
85
|
+
The HTML archives at http://bogomips.org/unicorn-public/
|
|
86
|
+
also has links to per-thread Atom feeds and downloadable
|
|
87
|
+
mboxes.
|
|
90
88
|
|
|
91
|
-
|
|
92
|
-
# this does not affect ssoma functionality at all
|
|
89
|
+
You may also subscribe via plain-text email:
|
|
93
90
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
# You may wish to sync in your cronjob
|
|
98
|
-
ssoma sync --cron
|
|
99
|
-
|
|
100
|
-
HTML archives are available here: http://bogomips.org/unicorn-public/
|
|
91
|
+
mailto:unicorn-public+subscribe@bogomips.org
|
|
92
|
+
(and confirming the auto-reply)
|
data/KNOWN_ISSUES
CHANGED
|
@@ -13,7 +13,7 @@ acceptable solution. Those issues are documented here.
|
|
|
13
13
|
|
|
14
14
|
* PRNGs (pseudo-random number generators) loaded before forking
|
|
15
15
|
(e.g. "preload_app true") may need to have their internal state
|
|
16
|
-
reset in the after_fork hook. Starting with
|
|
16
|
+
reset in the after_fork hook. Starting with unicorn 3.6.1, we
|
|
17
17
|
have builtin workarounds for Kernel#rand and OpenSSL::Random users,
|
|
18
18
|
but applications may use other PRNGs.
|
|
19
19
|
|
|
@@ -36,29 +36,29 @@ acceptable solution. Those issues are documented here.
|
|
|
36
36
|
|
|
37
37
|
* Under some versions of Ruby 1.8, it is necessary to call +srand+ in an
|
|
38
38
|
after_fork hook to get correct random number generation. We have a builtin
|
|
39
|
-
workaround for this starting with
|
|
39
|
+
workaround for this starting with unicorn 3.6.1
|
|
40
40
|
|
|
41
|
-
See http://
|
|
41
|
+
See http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/36450
|
|
42
42
|
|
|
43
43
|
* On Ruby 1.8 prior to Ruby 1.8.7-p248, *BSD platforms have a broken
|
|
44
44
|
stdio that causes failure for file uploads larger than 112K. Upgrade
|
|
45
|
-
your version of Ruby or continue using
|
|
45
|
+
your version of Ruby or continue using unicorn 1.x/3.4.x.
|
|
46
46
|
|
|
47
47
|
* Under Ruby 1.9.1, methods like Array#shuffle and Array#sample will
|
|
48
48
|
segfault if called after forking. Upgrade to Ruby 1.9.2 or call
|
|
49
49
|
"Kernel.rand" in your after_fork hook to reinitialize the random
|
|
50
50
|
number generator.
|
|
51
51
|
|
|
52
|
-
See http://
|
|
52
|
+
See http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/28655
|
|
53
53
|
|
|
54
54
|
* Rails 2.3.2 bundles its own version of Rack. This may cause subtle
|
|
55
55
|
bugs when simultaneously loaded with the system-wide Rack Rubygem
|
|
56
|
-
which
|
|
56
|
+
which unicorn depends on. Upgrading to Rails 2.3.4 (or later) is
|
|
57
57
|
strongly recommended for all Rails 2.3.x users for this (and security
|
|
58
58
|
reasons). Rails 2.2.x series (or before) did not bundle Rack and are
|
|
59
59
|
should be unnaffected. If there is any reason which forces your
|
|
60
60
|
application to use Rails 2.3.2 and you have no other choice, then
|
|
61
|
-
you may edit your
|
|
61
|
+
you may edit your unicorn gemspec and remove the Rack dependency.
|
|
62
62
|
|
|
63
63
|
ref: http://mid.gmane.org/20091014221552.GA30624@dcvr.yhbt.net
|
|
64
64
|
Note: the workaround described in the article above only made
|
|
@@ -71,9 +71,9 @@ acceptable solution. Those issues are documented here.
|
|
|
71
71
|
set :env, :production
|
|
72
72
|
set :run, false
|
|
73
73
|
Since this is no longer an issue with Sinatra 0.9.x apps, this will not be
|
|
74
|
-
fixed on our end. Since
|
|
74
|
+
fixed on our end. Since unicorn is itself the application launcher, the
|
|
75
75
|
at_exit handler used in old Sinatra always caused Mongrel to be launched
|
|
76
|
-
whenever a
|
|
76
|
+
whenever a unicorn worker was about to exit.
|
|
77
77
|
|
|
78
78
|
Also remember we're capable of replacing the running binary without dropping
|
|
79
79
|
any connections regardless of framework :)
|
data/LATEST
CHANGED
|
@@ -1,30 +1,29 @@
|
|
|
1
|
-
=== unicorn
|
|
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
|
-
some sort of mail archiver (using git)
|
|
1
|
+
=== unicorn 5.0.0.pre2 - another prerelease! / 2015-07-06 21:37 UTC
|
|
2
|
+
|
|
3
|
+
There is a minor TCP socket options are now applied to inherited
|
|
4
|
+
sockets, and we have native support for inheriting sockets from
|
|
5
|
+
systemd (by emulating the sd_listen_fds(3) function).
|
|
6
|
+
|
|
7
|
+
Dynamic changes in the application to Rack::Utils::HTTP_STATUS
|
|
8
|
+
codes is now supported, so you can use your own custom status
|
|
9
|
+
lines.
|
|
10
|
+
|
|
11
|
+
Ruby 2.2 and later is now favored for performance.
|
|
12
|
+
Optimizations by using constants which made sense in earlier
|
|
13
|
+
versions of Ruby are gone: so users of old Ruby versions
|
|
14
|
+
will see performance regressions. Ruby 2.2 users should
|
|
15
|
+
see the same or better performance, and we have less code
|
|
16
|
+
as a result.
|
|
17
|
+
|
|
18
|
+
* doc: update some invalid URLs
|
|
19
|
+
* apply TCP socket options on inherited sockets
|
|
20
|
+
* reflect changes in Rack::Utils::HTTP_STATUS_CODES
|
|
21
|
+
* reduce constants and optimize for Ruby 2.2
|
|
22
|
+
* http_response: reduce size of multi-line header path
|
|
23
|
+
* emulate sd_listen_fds for systemd support
|
|
24
|
+
* test/unit/test_response.rb: compatibility with older test-unit
|
|
25
|
+
|
|
26
|
+
This also includes all changes in unicorn 5.0.0.pre1:
|
|
27
|
+
|
|
28
|
+
http://bogomips.org/unicorn-public/m/20150615225652.GA16164@dcvr.yhbt.net.html
|
|
30
29
|
|
data/Links
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
= Related Projects
|
|
2
2
|
|
|
3
|
-
If you're interested in
|
|
3
|
+
If you're interested in unicorn, you may be interested in some of the projects
|
|
4
4
|
listed below. If you have any links to add/change/remove, please tell us at
|
|
5
5
|
mailto:unicorn-public@bogomips.org!
|
|
6
6
|
|
|
7
7
|
== Disclaimer
|
|
8
8
|
|
|
9
|
-
The
|
|
10
|
-
Furthermore, the
|
|
9
|
+
The unicorn project is not responsible for the content in these links.
|
|
10
|
+
Furthermore, the unicorn project has never, does not and will never endorse:
|
|
11
11
|
|
|
12
12
|
* any for-profit entities or services
|
|
13
13
|
* any non-{Free Software}[http://www.gnu.org/philosophy/free-sw.html]
|
|
@@ -15,13 +15,13 @@ Furthermore, the \Unicorn project has never, does not and will never endorse:
|
|
|
15
15
|
The existence of these links does not imply endorsement of any entities
|
|
16
16
|
or services behind them.
|
|
17
17
|
|
|
18
|
-
=== For use with
|
|
18
|
+
=== For use with unicorn
|
|
19
19
|
|
|
20
20
|
* {Bluepill}[https://github.com/arya/bluepill] -
|
|
21
21
|
a simple process monitoring tool written in Ruby
|
|
22
22
|
|
|
23
23
|
* {golden_brindle}[https://github.com/simonoff/golden_brindle] - tool to
|
|
24
|
-
manage multiple
|
|
24
|
+
manage multiple unicorn instances/applications on a single server
|
|
25
25
|
|
|
26
26
|
* {raindrops}[http://raindrops.bogomips.org/] - real-time stats for
|
|
27
27
|
preforking Rack servers
|
|
@@ -29,26 +29,23 @@ or services behind them.
|
|
|
29
29
|
* {UnXF}[http://bogomips.org/unxf/] Un-X-Forward* the Rack environment,
|
|
30
30
|
useful since unicorn is designed to be deployed behind a reverse proxy.
|
|
31
31
|
|
|
32
|
-
===
|
|
32
|
+
=== unicorn is written to work with
|
|
33
33
|
|
|
34
34
|
* {Rack}[http://rack.github.io/] - a minimal interface between webservers
|
|
35
35
|
supporting Ruby and Ruby frameworks
|
|
36
36
|
|
|
37
|
-
* {Ruby}[
|
|
37
|
+
* {Ruby}[https://www.ruby-lang.org/en/] - the programming language of
|
|
38
|
+
Rack and unicorn
|
|
38
39
|
|
|
39
|
-
* {nginx}[http://nginx.org/]
|
|
40
|
-
|
|
41
|
-
* {kgio}[http://bogomips.org/kgio/] - the I/O library written for \Unicorn
|
|
40
|
+
* {nginx}[http://nginx.org/] (Free versions) -
|
|
41
|
+
the reverse proxy for use with unicorn
|
|
42
42
|
|
|
43
43
|
=== Derivatives
|
|
44
44
|
|
|
45
|
-
* {Green Unicorn}[http://gunicorn.org/] - a Python version of
|
|
46
|
-
|
|
47
|
-
* {Rainbows!}[http://rainbows.bogomips.org/] - \Unicorn for sleepy
|
|
48
|
-
apps and slow clients (historical).
|
|
45
|
+
* {Green Unicorn}[http://gunicorn.org/] - a Python version of unicorn
|
|
49
46
|
|
|
50
|
-
* {
|
|
51
|
-
|
|
47
|
+
* {Starman}[http://search.cpan.org/dist/Starman/] - Plack/PSGI version
|
|
48
|
+
of unicorn
|
|
52
49
|
|
|
53
50
|
=== Prior Work
|
|
54
51
|
|
|
@@ -56,4 +53,4 @@ or services behind them.
|
|
|
56
53
|
unicorn is based on
|
|
57
54
|
|
|
58
55
|
* {david}[http://bogomips.org/david.git] - a tool to explain why you need
|
|
59
|
-
nginx in front of
|
|
56
|
+
nginx in front of unicorn
|