�ɤ����Unicorn�Ȥ����Τ��ɤ��餷���Ȥ�������ʹ���Ĥ����Τǡ��ɤ�ʤ�󤸤���Ȼ�Ƥߤ뤳�Ȥˤ�����
Unicorn�ƤΤϲ��ԤʤΤ��ȸ����ȡ�Rack�ڤ�Rails���б�����Ruby��Web���ץ��Ѥ�HTTP�����С��ܤ����Ͼ�ε������ɤ�Dz�������github�Ǥ�ȤäƤ뤽���������ȡ�̾�����ʹ��ɤ��ʤ���ޤ�ط��ʤ��ˡ�
�ޤ���unicorn������
�ȸ��äƤ⡢gem install unicorn����config.ru������ǥ��쥯�ȥ��unicorn���ޥ�ɤ�á���С�thin�Ȥ���Ʊ���褦�˥����Ф���ư���롣rackup�ߴ��Υ��ץ������դ��Ƥ�Τ��ä�Ǻ�ळ�Ȥ�ʤ��Ȼפ������Ȥ����̤�Apache�Ȥ��ǥץ����������ꤷ�Ƥ��ʤ�ʤ�ʤꤹ��Ф����Ȥ��롣
������������礷�����򤯤ʤ��Τǡ��޳Ѥ������ε����˽񤤤Ƥ���褦�ˡ�nginx�ǥ����åȤǤäƤ�������򤷤Ƥߤ롣���Unicorn���������ꡣ���ʤߤ˥���ץ�˻Ȥä��Τ���ˤ�ä������404�Τ�ġ������ߤ�Apache2+Passenger��ư���Ƥ�����
# unicron.conf worker_processes 4 working_directory '/var/www/rackapp' listen '/tmp/rackapp.sock', :backlog => 1 listen 4423, :tcp_nopush => true timeout 10 pid '/tmp/rackapp.pid' preload_app true stderr_path '/var/log/rackapp.log' before_fork do |server, worker| old_pid = "#{server.config[:pid]}.oldbin" if old_pid != server.pid begin sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU Process.kill(sig, File.read(old_pid).to_i) rescue Errno::ENOENT, Errno::ESRCH end end sleep 1 end after_fork do |server, worker| addr = "127.0.0.1:#{4423 + worker.nr}" server.listen(addr, :tries => -1, :delay => 5, :tcp_nopush => 1) end
��ȤϤۤȤ��Unicorn�����������饳�ԥڡ����ʤߤˡ�nginx��侩���Ƥ�������ä�nginx������˻�����DSL�ˤʤäƤ뤱�ɡ����֤ϸ��Ƥ��̤�Ruby�����ε��ˤʤ��ưŪ������򤴤ˤ礴�ˤ�ߤ����ʤ��Ȥ�Ǥ��롣������Thin�ߤ����ˤ褷�ʤˤ�äƤϤ���ʤ����ɡ������դ������Logger���Ϥ��ʤ�Rack�Υߥɥ륦������ȤäƤʤ�Ȥ�����ʤꤹ���OK��
��Ǥ����Ŭ���ʥե�����̾����¸�����顢���Τ褦��unicorn���ޥ�ɤ�á����
$ unicorn -D -c /var/www/rackapp/unicorn.conf /var/www/rackapp/config.ru
-D���ץ����ǥǡ����ư��-c���ץ���������ե�����λ��ꡢ�Ǹ�ΰ�����rackup�ե�����Υե�ѥ������ʤߤˤ����/var/www/rackapp����ʤ��Ȥ����Ǽ¹Ԥ��Ƥߤ�������ɡ��ǽ�ϡ�working_directory�Ȥ����ꤷ�Ƥ뤫�顢�����ˤ���config.ru�򾡼���ɤ�Ǥ��줿�ꤷ�ʤ����ʡפȤ��פäƤ�������ɤ�äѤ����ǡ����θ����Хѥ��ǻ��ꤷ�Ƥߤ���require�ǥ����ơ֤���ʥե�����͡��衢�����Ͽ��Ƹ����פ��ܤ�Ф����Τǡ����Хѥ��ˤ�����Ԥ�����
���λ�����http://localhost:4423/�������ȸ����뤳�Ȥȡ�unicorn.sock������Ƥ뤳�Ȥ��ǧ���褷����nginx��
nginx�Υץ���������
����ʴ�����
�� nginx.unicorn.conf upstream rackapp { server unix:/tmp/rackapp.sock; } server { listen 80; server_name localhost; location / { proxy_pass http://rackapp; } }
��������ܤ�nginx.conf��http�Υ֥��å��Τɤ�����include���Ƥ�롣������äȤ��Ȥ���ʳ��ˤ����̤�nginx�κ٤�������Ϥ��Ƥ뤱�ɡ������ǤϾ�ά���Ƥޤ���
���ʤߤˡ������åȤǤ��褦�����ꤷ�Ƥ뤫�餳���ʤäƤ뤱�ɡ�TCP���ɤ����proxy_pass�ΤȤ�����http://localhost:4423�Ȥ��ˤ��Ƥ�äƤ����̤�ư����
�Ȥꤢ��������Ǵ��������Ȥ�nginx��ư���Ƥ��С������ȸ����롣��Ũ��
���󥿡��ե����������줵��Ƥ�ä���Ũ���
���䤡����ä�Rack�ǥ��󥿡��ե����������줵��Ƥ�äơ��ɤ��Ǥ���͡����ץ�¦����ޤ�Ϯ��ʤ��Ƥ⤵���äȰܹԤǤ���櫓�Ǥ������äƤ����ä򤳤ʤ����񤤤��ˡ����ȡ��Ĥ��Ǥ�Ʊ�������Ф�ư���Ƥ�HTTP::Engine�Υ��ץ�⡢apache+modperl����nginx+fcgi�˰ܹԤ��Ƥߤ����ɡ����ä�����礳�ä������Ѥ������餤�ǥ��ץ�¦������Ϯ�äƤʤ����ɤ��ʡ����������ƿ������Ķ����ФƤ����ꤷ���Ȥ��ˤϤ�äѤ�Rack��ʤ��餬������ȯ�����롣�޳ѤʤΤǼ���Plack��H::E�ΤȤ���Ʊ�����Ȥ��äƤߤ褦�ȸ�Ƥ�档
��ǡ����Unicorn���ɤ��Ρ������Ρ�
�����ĥ٥����äƤʤ��ΤǤʤ�Ȥ⡣��äƤ�������404�פ��㤢��ޤ껲�ͤˤʤ�ʤ������ʡ������������ץ������ɤ�����äƤ���fork����Ȥ�nginx¦�˵��դ����ʤ��Ѥ˺Ƶ�ư�Ǥ���Ȥ������դ����Ǥ⽽ʬ̥��Ū�ǤϤ��롣���ȡ��Ƶ�ư���ᤫ�ä���ή�С�