I am deploying a Rails 2.3 // Spree app with Capistrano/Unicorn/Foreman/Upstart.
The part that I cannot figure out is how to have the /myapp/shared/sockets/unicorn.sock be automatically created by the foreman/upstart process management (at least that I think the unix socket should come from them).
What’s responsible for creating the unix socket?
Let’s say your configuration is nginx + unicorn . As you probably know , in the config dir you should create a file named unicorn.rb . In this file there is a description how to handle non-static requests , something like this :
I’ve named the upstream differently than stated in tutorials , this gives me ability to host a number different applications on the same host .
Then , in your vhosts dir on the Nginx configuration you put something like this (let’s say your host file is ‘vhosts/myconf.conf’:
Here you see the instruction to nginx to serve non-static requests from the place , named “http://unicapd” , which is related to your unicorn.rb config file . This configuration is triggered by a file , which is in your init.d (in case you’re running Debian) directory .
Summary : When you say bundle exec unicorn –restart , the script in your init.d triggers the code , forming a “special” file /tmp/capd.sock , which serves the dynamic content from you Rails app.