RoR+ Nginx + Unicorn으로 시작합니다.
경의
- 평소 RoR로 스스로 정돈하는 환경은 RoR Passenger를 사용하는 것이 많았습니다만 Nginx가 움직이고 있는 환경에서 뭔가하고 싶다고 생각해 보았습니다.
그냥 그냥 ....
초보자가 조금 어려울 것 같은 일을 했다고 생각하는 정도로 바라보세요.
환경
-centos 7
-rails 4.2.6
-nginx 1.6.3
vagrant의 환경은 들어가 있는 것으로 이야기를 진행시켜 갑니다.
CentOS 설치
$ vagrant box add rails_env https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box
$ vagrant init rails_env
$ vagrant up
rails 설치
sudo gem install rails
- 조금 시간이 걸립니다.
nginx 설치
sudo yum install nginx
rails 프로젝트 만들기
rails new project名
cd project名
Gemfile 편집 설치
gem 'unicorn'
bundle install
시작 확인
bundle exec rails server -b ip番号
자, 준비가 되었습니다.
unicorn 파일 편집
config/unicorn.rb@app_path = 'プロジェクトまでのディレクトリ'
worker_processes 2
working_directory "#{@app_path}/"
preload_app true
timeout 30
# socketファイルを生成するディレクトリ
listen "/tmp/unicorn.sock", :backlog => 64
#プロセスIDを生成するディレクトリ
pid "/tmp/unicorn.pid"
#logの場所を指定
stderr_path "#{@app_path}/log/unicorn.stderr.log"
stdout_path "#{@app_path}/log/unicorn.stdout.log"
# USR2シグナルを受けると古いプロセスを止める。
#必要に応じて変えてください
#worker_processes 2 , timeout 10
before_fork do |server, worker|
defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect!
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|
defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection
end
이것으로 유니콘 설정이 완료됩니다.
다음은 nginx입니다.
#最大コネクション数の設定 デフォルトは512でした
events {
worker_connections 1024;
}
http {
upstream unicorn_server {
# unicorn.rbで設定したsockpathを指定
server unix:/tmp/unicorn.sock
fail_timeout=0;
}
server {
//
listen 80;
client_max_body_size 4G;
server_name _;
keepalive_timeout 5;
# railsまでのpathを指定
root rails_project/public;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
# If you don't find the filename in the static files
# Then request it from the unicorn server
if (!-f $request_filename) {
proxy_pass http://unicorn_server;
break;
}
}
error_page 500 502 503 504 /500.html;
location = /500.html {
root /hoge/vagrant/hage/public;
}
}
}
unicorn 시작
bundle exec unicorn_rails -c config/unicorn.rb -E development -D
nginx 시작
sudo nginx
안전하게 시작할 수있었습니다.
chef라든지 docker등으로 세우는 것은 떨어지고 있는 것을 픽업하는 것만으로 좋은 느낌은 합니다만 수동으로 세우면 상당히 시간 걸렸습니다. 어떻게 움직이는지 파악하는 것이 가장 좋습니다.
수고하셨습니다.
Reference
이 문제에 관하여(RoR+ Nginx + Unicorn으로 시작합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mizutamazukki/items/ba43d2658ffc9d3b25be
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
-centos 7
-rails 4.2.6
-nginx 1.6.3
vagrant의 환경은 들어가 있는 것으로 이야기를 진행시켜 갑니다.
CentOS 설치
$ vagrant box add rails_env https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box
$ vagrant init rails_env
$ vagrant up
rails 설치
sudo gem install rails
- 조금 시간이 걸립니다.
nginx 설치
sudo yum install nginx
rails 프로젝트 만들기
rails new project名
cd project名
Gemfile 편집 설치
gem 'unicorn'
bundle install
시작 확인
bundle exec rails server -b ip番号
자, 준비가 되었습니다.
unicorn 파일 편집
config/unicorn.rb@app_path = 'プロジェクトまでのディレクトリ'
worker_processes 2
working_directory "#{@app_path}/"
preload_app true
timeout 30
# socketファイルを生成するディレクトリ
listen "/tmp/unicorn.sock", :backlog => 64
#プロセスIDを生成するディレクトリ
pid "/tmp/unicorn.pid"
#logの場所を指定
stderr_path "#{@app_path}/log/unicorn.stderr.log"
stdout_path "#{@app_path}/log/unicorn.stdout.log"
# USR2シグナルを受けると古いプロセスを止める。
#必要に応じて変えてください
#worker_processes 2 , timeout 10
before_fork do |server, worker|
defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect!
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|
defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection
end
이것으로 유니콘 설정이 완료됩니다.
다음은 nginx입니다.
#最大コネクション数の設定 デフォルトは512でした
events {
worker_connections 1024;
}
http {
upstream unicorn_server {
# unicorn.rbで設定したsockpathを指定
server unix:/tmp/unicorn.sock
fail_timeout=0;
}
server {
//
listen 80;
client_max_body_size 4G;
server_name _;
keepalive_timeout 5;
# railsまでのpathを指定
root rails_project/public;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
# If you don't find the filename in the static files
# Then request it from the unicorn server
if (!-f $request_filename) {
proxy_pass http://unicorn_server;
break;
}
}
error_page 500 502 503 504 /500.html;
location = /500.html {
root /hoge/vagrant/hage/public;
}
}
}
unicorn 시작
bundle exec unicorn_rails -c config/unicorn.rb -E development -D
nginx 시작
sudo nginx
안전하게 시작할 수있었습니다.
chef라든지 docker등으로 세우는 것은 떨어지고 있는 것을 픽업하는 것만으로 좋은 느낌은 합니다만 수동으로 세우면 상당히 시간 걸렸습니다. 어떻게 움직이는지 파악하는 것이 가장 좋습니다.
수고하셨습니다.
Reference
이 문제에 관하여(RoR+ Nginx + Unicorn으로 시작합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mizutamazukki/items/ba43d2658ffc9d3b25be
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ vagrant box add rails_env https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box
$ vagrant init rails_env
$ vagrant up
sudo gem install rails
- 조금 시간이 걸립니다.
nginx 설치
sudo yum install nginx
rails 프로젝트 만들기
rails new project名
cd project名
Gemfile 편집 설치
gem 'unicorn'
bundle install
시작 확인
bundle exec rails server -b ip番号
자, 준비가 되었습니다.
unicorn 파일 편집
config/unicorn.rb@app_path = 'プロジェクトまでのディレクトリ'
worker_processes 2
working_directory "#{@app_path}/"
preload_app true
timeout 30
# socketファイルを生成するディレクトリ
listen "/tmp/unicorn.sock", :backlog => 64
#プロセスIDを生成するディレクトリ
pid "/tmp/unicorn.pid"
#logの場所を指定
stderr_path "#{@app_path}/log/unicorn.stderr.log"
stdout_path "#{@app_path}/log/unicorn.stdout.log"
# USR2シグナルを受けると古いプロセスを止める。
#必要に応じて変えてください
#worker_processes 2 , timeout 10
before_fork do |server, worker|
defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect!
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|
defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection
end
이것으로 유니콘 설정이 완료됩니다.
다음은 nginx입니다.
#最大コネクション数の設定 デフォルトは512でした
events {
worker_connections 1024;
}
http {
upstream unicorn_server {
# unicorn.rbで設定したsockpathを指定
server unix:/tmp/unicorn.sock
fail_timeout=0;
}
server {
//
listen 80;
client_max_body_size 4G;
server_name _;
keepalive_timeout 5;
# railsまでのpathを指定
root rails_project/public;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
# If you don't find the filename in the static files
# Then request it from the unicorn server
if (!-f $request_filename) {
proxy_pass http://unicorn_server;
break;
}
}
error_page 500 502 503 504 /500.html;
location = /500.html {
root /hoge/vagrant/hage/public;
}
}
}
unicorn 시작
bundle exec unicorn_rails -c config/unicorn.rb -E development -D
nginx 시작
sudo nginx
안전하게 시작할 수있었습니다.
chef라든지 docker등으로 세우는 것은 떨어지고 있는 것을 픽업하는 것만으로 좋은 느낌은 합니다만 수동으로 세우면 상당히 시간 걸렸습니다. 어떻게 움직이는지 파악하는 것이 가장 좋습니다.
수고하셨습니다.
Reference
이 문제에 관하여(RoR+ Nginx + Unicorn으로 시작합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mizutamazukki/items/ba43d2658ffc9d3b25be
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
sudo yum install nginx
rails new project名
cd project名
Gemfile 편집 설치
gem 'unicorn'
bundle install
시작 확인
bundle exec rails server -b ip番号
자, 준비가 되었습니다.
unicorn 파일 편집
config/unicorn.rb@app_path = 'プロジェクトまでのディレクトリ'
worker_processes 2
working_directory "#{@app_path}/"
preload_app true
timeout 30
# socketファイルを生成するディレクトリ
listen "/tmp/unicorn.sock", :backlog => 64
#プロセスIDを生成するディレクトリ
pid "/tmp/unicorn.pid"
#logの場所を指定
stderr_path "#{@app_path}/log/unicorn.stderr.log"
stdout_path "#{@app_path}/log/unicorn.stdout.log"
# USR2シグナルを受けると古いプロセスを止める。
#必要に応じて変えてください
#worker_processes 2 , timeout 10
before_fork do |server, worker|
defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect!
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|
defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection
end
이것으로 유니콘 설정이 완료됩니다.
다음은 nginx입니다.
#最大コネクション数の設定 デフォルトは512でした
events {
worker_connections 1024;
}
http {
upstream unicorn_server {
# unicorn.rbで設定したsockpathを指定
server unix:/tmp/unicorn.sock
fail_timeout=0;
}
server {
//
listen 80;
client_max_body_size 4G;
server_name _;
keepalive_timeout 5;
# railsまでのpathを指定
root rails_project/public;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
# If you don't find the filename in the static files
# Then request it from the unicorn server
if (!-f $request_filename) {
proxy_pass http://unicorn_server;
break;
}
}
error_page 500 502 503 504 /500.html;
location = /500.html {
root /hoge/vagrant/hage/public;
}
}
}
unicorn 시작
bundle exec unicorn_rails -c config/unicorn.rb -E development -D
nginx 시작
sudo nginx
안전하게 시작할 수있었습니다.
chef라든지 docker등으로 세우는 것은 떨어지고 있는 것을 픽업하는 것만으로 좋은 느낌은 합니다만 수동으로 세우면 상당히 시간 걸렸습니다. 어떻게 움직이는지 파악하는 것이 가장 좋습니다.
수고하셨습니다.
Reference
이 문제에 관하여(RoR+ Nginx + Unicorn으로 시작합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mizutamazukki/items/ba43d2658ffc9d3b25be
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
gem 'unicorn'
bundle install
bundle exec rails server -b ip番号
자, 준비가 되었습니다.
unicorn 파일 편집
config/unicorn.rb@app_path = 'プロジェクトまでのディレクトリ'
worker_processes 2
working_directory "#{@app_path}/"
preload_app true
timeout 30
# socketファイルを生成するディレクトリ
listen "/tmp/unicorn.sock", :backlog => 64
#プロセスIDを生成するディレクトリ
pid "/tmp/unicorn.pid"
#logの場所を指定
stderr_path "#{@app_path}/log/unicorn.stderr.log"
stdout_path "#{@app_path}/log/unicorn.stdout.log"
# USR2シグナルを受けると古いプロセスを止める。
#必要に応じて変えてください
#worker_processes 2 , timeout 10
before_fork do |server, worker|
defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect!
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|
defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection
end
이것으로 유니콘 설정이 완료됩니다.
다음은 nginx입니다.
#最大コネクション数の設定 デフォルトは512でした
events {
worker_connections 1024;
}
http {
upstream unicorn_server {
# unicorn.rbで設定したsockpathを指定
server unix:/tmp/unicorn.sock
fail_timeout=0;
}
server {
//
listen 80;
client_max_body_size 4G;
server_name _;
keepalive_timeout 5;
# railsまでのpathを指定
root rails_project/public;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
# If you don't find the filename in the static files
# Then request it from the unicorn server
if (!-f $request_filename) {
proxy_pass http://unicorn_server;
break;
}
}
error_page 500 502 503 504 /500.html;
location = /500.html {
root /hoge/vagrant/hage/public;
}
}
}
unicorn 시작
bundle exec unicorn_rails -c config/unicorn.rb -E development -D
nginx 시작
sudo nginx
안전하게 시작할 수있었습니다.
chef라든지 docker등으로 세우는 것은 떨어지고 있는 것을 픽업하는 것만으로 좋은 느낌은 합니다만 수동으로 세우면 상당히 시간 걸렸습니다. 어떻게 움직이는지 파악하는 것이 가장 좋습니다.
수고하셨습니다.
Reference
이 문제에 관하여(RoR+ Nginx + Unicorn으로 시작합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mizutamazukki/items/ba43d2658ffc9d3b25be
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
@app_path = 'プロジェクトまでのディレクトリ'
worker_processes 2
working_directory "#{@app_path}/"
preload_app true
timeout 30
# socketファイルを生成するディレクトリ
listen "/tmp/unicorn.sock", :backlog => 64
#プロセスIDを生成するディレクトリ
pid "/tmp/unicorn.pid"
#logの場所を指定
stderr_path "#{@app_path}/log/unicorn.stderr.log"
stdout_path "#{@app_path}/log/unicorn.stdout.log"
# USR2シグナルを受けると古いプロセスを止める。
#必要に応じて変えてください
#worker_processes 2 , timeout 10
before_fork do |server, worker|
defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect!
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|
defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection
end
#最大コネクション数の設定 デフォルトは512でした
events {
worker_connections 1024;
}
http {
upstream unicorn_server {
# unicorn.rbで設定したsockpathを指定
server unix:/tmp/unicorn.sock
fail_timeout=0;
}
server {
//
listen 80;
client_max_body_size 4G;
server_name _;
keepalive_timeout 5;
# railsまでのpathを指定
root rails_project/public;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
# If you don't find the filename in the static files
# Then request it from the unicorn server
if (!-f $request_filename) {
proxy_pass http://unicorn_server;
break;
}
}
error_page 500 502 503 504 /500.html;
location = /500.html {
root /hoge/vagrant/hage/public;
}
}
}
bundle exec unicorn_rails -c config/unicorn.rb -E development -D
nginx 시작
sudo nginx
안전하게 시작할 수있었습니다.
chef라든지 docker등으로 세우는 것은 떨어지고 있는 것을 픽업하는 것만으로 좋은 느낌은 합니다만 수동으로 세우면 상당히 시간 걸렸습니다. 어떻게 움직이는지 파악하는 것이 가장 좋습니다.
수고하셨습니다.
Reference
이 문제에 관하여(RoR+ Nginx + Unicorn으로 시작합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mizutamazukki/items/ba43d2658ffc9d3b25be
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
sudo nginx
Reference
이 문제에 관하여(RoR+ Nginx + Unicorn으로 시작합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mizutamazukki/items/ba43d2658ffc9d3b25be텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)