33789


初めまして。  
かなり強引な書き方ですが、ruby on rails のアプリを公開したいと  
思っています。

puma と nginxでしたいと思っています。参考になるようなサイトを  
探して真似てみたのですがどうしてもつながりません。  
どなたかエラーとなりそうな所を指摘もらえたらと願っています。

ちなみに下記でのpumaだけでは外部から見れます。。

[code]

    rails  s -d -b 0.0.0.0 -p 80
    
[/code]

もちろんこの前に必要事項は`export`と`rails assets:precompile`は実行  
しています。

私のhostの環境は次の通りです。

[code]

    DISTRIB_ID=Ubuntu
    DISTRIB_RELEASE=16.04
    DISTRIB_CODENAME=xenial
    DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"
    
    ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-linux]
    
    Rails 5.0.1
    
    nginx version: nginx/1.10.0 (Ubuntu)
    
[/code]

一部設定状況は下記の通りです。

[code]

    ******@nahs:~$ cat /etc/nginx/conf.d/app_nagao_2.conf
    upstream app_nagao2 {
            server unix:/home/nagao/run/app_nagao2.sock fail_timeout=0;
      }
    
    server {
        listen 80;
            server_name 192.168.210.150;
    
        root /home/******/run/app_nagao2/public; # アプリケーション名を記述
    
        try_files $uri/index.html $uri @app_nagao2; # アプリケーション名を記述
    
        location / {
                proxy_pass http://app_nagao2; # アプリケーション名を記述
    
    app_nagao2/config/puma.rb
    _proj_path = "#{File.expand_path("../..", __FILE__)}"
    _proj_name = File.basename(_proj_path)
    _home = ENV.fetch("HOME") { "/home/******" }
    
    pidfile "#{_home}/run/#{_proj_name}.pid"
    bind "unix://#{_home}/run/#{_proj_name}.sock"
    directory _proj_path
    
    
    threads_count = ENV.fetch("RAILS_MAX_THREADS") { 8 }.to_i
    threads threads_count, threads_count
    
[/code]

ラン内での <http://192.168.210.150:80> では正常に表示します。  
でも外からのアクセスでは Welcome to Nginx だけで  
私のページは表示されません。

/var/log/nginx/error.log に下記のようなメッセージが出ています。

[code]

    www-data
    
    [error] 1283#1283: *32 connect() to unix:/home/******/run/app_nagao2.sock failed (111: Connection refused)
    
    root@nahs:~# ls -l /home/******/run/
    合計 4
    drwxrwxr-x 12 ****** ****** 4096  4月  1 22:29 app_nagao2
    srwxrwxrwx  1 ****** ******   0  4月  3 20:16 app_nagao2.sock
    
    cat /etc/group
    　　・
    　　・
    ******:x:1000:www-data
    
[/code]

*****はサーバーでのログイン名です。  
正直多くのところで内容が理解できていません。  
何かアドバイスいただけたら幸いです。  
よろしくお願いします。


CC BY-SA 3.0
2017-04-05T08:04:06.547
33788
2017-04-05T08:27:26.340
2017-04-05T08:27:26.340
19110
14412
question
ruby-on-rails nginx
rails5, puma, nginxで繋げる事ができない。


おそらくデフォルトの`server`ディレクティブが邪魔をしているのでしょう。

複数のホストが同一ポートに登録されている場合、Nginxは`Host`ヘッダと`server_name`ディレクティブを参照して利用するものを選択します。

もし単一アプリのみにそのサーバーを利用する予定ならばデフォルトのserverディレクティブ(おそらくnginx.confに定義されている)を削除orコメントアウトすればすべてのリクエストはそのアプリケーションに到達できるでしょう。


CC BY-SA 3.0
2017-04-05T08:17:23.820
33789
2017-04-05T08:17:23.820
2376
33788
answer