質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

2053閲覧

nginx, unicorn, railsの連携

MasakazuFukami

総合スコア1869

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2015/09/05 05:37

いつもお世話になっております。
nginxとunicornの連携がうまくできません。。。
具体的な症状としては
取得したドメイン(myapp.com)にアクセスしても

イメージ説明

このようにブラウザに表示されてしまいます。
myapp.comとサーバの連携はできている(unicornを使わずに/etc/nginx/conf.d/defautを読み込むようにするとnginxのデフォルトのページが表示されます)のでngixとunicornの設定が間違っているのではないかと思います。

環境は
サーバ:さくらVPS
OS: ubuntu14.04
ruby: 2.2.2
nginx:1.5.12
になります。

nginxの設定は
nginx.confの中で
sites-enabled/*を読み込むようにしており。
sites-enabled/にはアプリのunicornの設定ファイルを置いています。

ポートの状況はsudo ufw statusすると

planetext

1Status: active 2 3To Action From 4-- ------ ---- 580 ALLOW Anywhere 680 (v6) ALLOW Anywhere (v6)

このように出力され、80番ポートが空いてる状況です。

nginx.confは

planetext

1events { 2 worker_connections 768; 3 # multi_accept on; 4} 5 6http { 7 8 ## 9 # Basic Settings 10 ## 11 12 sendfile on; 13 tcp_nopush on; 14 tcp_nodelay on; 15 keepalive_timeout 65; 16 types_hash_max_size 2048; 17 # server_tokens off; 18 19 # server_names_hash_bucket_size 64; 20 # server_name_in_redirect off; 21 22 include /etc/nginx/mime.types; 23 default_type application/octet-stream; 24 25 ## 26 # Logging Settings 27 ## 28 29 access_log /var/log/nginx/access.log; 30 error_log /var/log/nginx/error.log; 31 32 ## 33 # Gzip Settings 34 ## 35 36 gzip on; 37 gzip_disable "msie6"; 38 39 # gzip_vary on; 40 # gzip_proxied any; 41 # gzip_comp_level 6; 42 # gzip_buffers 16 8k; 43 # gzip_http_version 1.1; 44 # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; 45 46 ## 47 # nginx-naxsi config 48 ## 49 # Uncomment it if you installed nginx-naxsi 50 ## 51 52 #include /etc/nginx/naxsi_core.rules; 53 54 ## 55 # nginx-passenger config 56 ## 57 # Uncomment it if you installed nginx-passenger 58 ## 59 60 #passenger_root /usr; 61 #passenger_ruby /usr/bin/ruby; 62 63 ## 64 # Virtual Host Configs 65 ## 66 67 #include /etc/nginx/conf.d/*.conf; 68 include /etc/nginx/sites-enabled/*; 69} 70 71 72#mail { 73# # See sample authentication script at: 74# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript 75# 76# # auth_http localhost/auth.php; 77# # pop3_capabilities "TOP" "USER"; 78# # imap_capabilities "IMAP4rev1" "UIDPLUS"; 79# 80# server { 81# listen localhost:110; 82# protocol pop3; 83# proxy on; 84# } 85# 86# server { 87# listen localhost:143; 88# protocol imap; 89# proxy on; 90# } 91#} 92 93

/etc/nginx/sites-enabled/app-unicorn

planetext

1upstream myapp.com { 2 #自分のRailsアプリへの場所 3 server unix:/var/www/rails/myapp/tmp/sockets/unicorn.sock fail_timeout=0; 4} 5 6server { 7 listen 80; 8 server_name myapp.com; 9 location / { 10 proxy_redirect off; 11 proxy_set_header Host $host; 12 proxy_set_header X-Real-IP $remote_addr; 13 proxy_set_header X-Forwarded-Host $host; 14 proxy_set_header X-Forwarded-Server $host; 15 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 16 client_max_body_size 35M; 17 proxy_pass http://myapp.com; 18 } 19} 20

また、自分が作成したrailsアプリは
/var/www/rails/にmyappという名前で置いてあり
/var/www/rails/myapp/config/unicorn.rb
には

unicorn.rb

1# ワーカーの数 2worker_processes 2 3 4# ソケット経由で通信する 5listen File.expand_path('tmp/sockets/unicorn.sock', ENV['RAILS_ROOT']) 6 7# ログ 8stderr_path File.expand_path('log/unicorn.log', ENV['RAILS_ROOT']) 9stdout_path File.expand_path('log/unicorn.log', ENV['RAILS_ROOT']) 10 11# ダウンタイムなくす 12preload_app true 13 14before_fork do |server, worker| 15 defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect! 16 old_pid = "#{ server.config[:pid] }.oldbin" 17 18 unless old_pid == server.pid 19 begin 20 # SIGTTOU だと worker_processes が多いときおかしい気がする 21 Process.kill :QUIT, File.read(old_pid).to_i 22 rescue Errno::ENOENT, Errno::ESRCH 23 24 end 25 end 26end 27 28after_fork do |server, worker| 29 defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection 30end

このように記述してあります。

bundle exec unicorn_rails -D -c /var/www/rails/myapp/config/unicorn.rb -E development

というふうにコマンドを打つとエラーもなく動いてくれるのですが、、、実際にアクセスすると最初の画像の用になってしまいます

こちらどのようにすればよろしいでしょうか。。。
よろしくお願いいたします!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

nginx の error_log には何かエラーの原因となるものが出力されていないでしょうか。

例えば、upstream に接続できなかった可能性が考えられます。
nginx.conf に user 設定がない場合、デフォルトで nginx ユーザーでプロセスが動くと思います。
upstream のソケットファイルは nginx ユーザーで読み書きできるでしょうか。パーミッションを確認ください。
あるいは、SELinux が有効で、許可されていないとか。

投稿2015/09/05 14:18

TaichiYanagiya

総合スコア12141

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MasakazuFukami

2015/09/07 04:03

ありがとうございます! unicornの設定が間違っていました! unicornを適応するディレクトリと格納しておくディレクトリを分けて、シンボリックリンクで適応していたのですがその設定がおかしかったようです! ファイルの実態を置いたところ動きました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問