# Unicorn 0.93.0 - Rack HTTP server

**URL:** <https://www.ruby-forum.com/t/unicorn-0-93-0-rack-http-server/176605>\
**Category:** Ruby\
**Created:** [October 2, 2009, 11:44pm UTC](https://www.ruby-forum.com/t/unicorn-0-93-0-rack-http-server/176605 "2009-10-02T23:44:35Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![ericw](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/97f17d/32.png) [@ericw](https://www.ruby-forum.com/u/ericw)\
**Post date:** [October 2, 2009, 11:44pm UTC](https://www.ruby-forum.com/t/unicorn-0-93-0-rack-http-server/176605/1 "2009-10-02T23:44:35Z")

</div>

Unicorn is a HTTP server for Rack applications designed to take  
advantage of features in Unix/Unix-like kernels and only serve fast  
clients on low-latency, high-bandwidth connections.

More small fixes and documentation improvements in this release, things  
have settled down a lot since 0.90.0 in August and we’ve mainly been  
focusing on documentation, minor UI improvements and the occasional  
minor bugfix as they get reported.

Changes:

The one minor bugfix is only for Rails 2.3.x+ users who set the  
RAILS\_RELATIVE\_URL\_ROOT environment variable in a config file.  
Users of the “–path” switch or those who set the environment  
variable in the shell were unaffected by this bug. Note that we  
still don’t have relative URL root support for Rails \< 2.3, and  
are unlikely to bother with it unless there is visible demand  
for it.

New features includes support for :tries and :delay when  
specifying a “listen” in an after\_fork hook. This was inspired  
by Chris W.'s example of binding per-worker listen  
sockets in a loop while migrating (or upgrading) Unicorn.  
Setting a negative value for :tries means we’ll retry the listen  
indefinitely until the socket becomes available.

So you can do something like this in an after\_fork hook:

```
  after_fork do |server, worker|
    addr = "127.0.0.1:#{9293 + worker.nr}"
    server.listen(addr, :tries => -1, :delay => 5)
  end

```

There’s also the usual round of added documentation, packaging  
fixes, code cleanups, small fixes and minor performance  
improvements that are viewable in the “git log” output.

- site: [http://unicorn.bogomips.org/](http://unicorn.bogomips.org/)
- git: git://git.bogomips.org/unicorn.git
- cgit: [Rack HTTP server for Unix and fast clients](http://git.bogomips.org/cgit/unicorn.git/)
- list: removed\_email\_address@domain.invalid
- nntp: nntp://news.gmane.org/gmane.comp.lang.ruby.unicorn.general
- finger: removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![ericw](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/97f17d/32.png) [@ericw](https://www.ruby-forum.com/u/ericw)\
**Post date:** [October 3, 2009, 3:26am UTC](https://www.ruby-forum.com/t/unicorn-0-93-0-rack-http-server/176605/2 "2009-10-03T03:26:25Z")

</div>

Unicorn is a HTTP server for Rack applications designed to take  
advantage of features in Unix/Unix-like kernels and only serve fast  
clients on low-latency, high-bandwidth connections.

Changes:

Fix permissions for release tarballs/gems, no other changes.  
Thanks to Jay Reitz for reporting this.

- site: [http://unicorn.bogomips.org/](http://unicorn.bogomips.org/)
- git: git://git.bogomips.org/unicorn.git
- cgit: [Rack HTTP server for Unix and fast clients](http://git.bogomips.org/cgit/unicorn.git/)
- list: removed\_email\_address@domain.invalid
- nntp: nntp://news.gmane.org/gmane.comp.lang.ruby.unicorn.general
- finger: removed\_email\_address@domain.invalid
