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

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

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

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

nginx

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

Sinatra

Sinatraは、Rubyで作られた オープンソースのWebアプリケーションフレームワークです。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

Q&A

1回答

3245閲覧

NginxもUnicornも立ち上がるが、ブラウザ上では「An error occurred.」

decatail

総合スコア43

unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

nginx

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

Sinatra

Sinatraは、Rubyで作られた オープンソースのWebアプリケーションフレームワークです。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

0グッド

0クリップ

投稿2021/11/16 08:43

編集2021/11/20 08:41

こちらの記事を参考にしています。

VPS上にNginx、Unicorn、Sinatraを導入して、ウェブサイトを展開しようとしています。Nginxの起動、Sinatraアプリの起動自体は成功しました。しかしブラウザにて確認すると、「An error occurred. Sorry, the page you are looking for is currently unavailable. Please try again later.」という表記が出て正常に動作しません。これは何が原因であろうと考えられるでしょうか。よろしくお願い申し上げます。他に必要な情報があれば是非おっしゃってください。

/etc/nginx/nginx.conf

user nginx; worker_processes auto; error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid; events { worker_connections 1024; } http { server_tokens off; include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; upstream Sinatra { server unix:/home/VPSUSER/Sinatra/tmp/sockets/Sinatra.sock; } }

/etc/nginx/conf.d/default.conf

server { listen 80; server_name localhost; #access_log /var/log/nginx/host.access.log main; # location / { # root /usr/share/nginx/html; # index index.html index.htm; # } location / { root /home/VPSUSER/Sinatra/public; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://Sinatra; } }

/home/VPSUSER/Sinatra/unicorn.rb

# coding: utf-8 @dir = "/home/VPSUSER/Sinatra" worker_processes 1 working_directory @dir preload_app true timeout 30 listen "#{@dir}/tmp/Sinatra.sock", :backlog => 64 pid "#{@dir}/tmp/pids/unicorn.pid" stderr_path "#{@dir}/log/unicorn.stderr.log" stdout_path "#{@dir}/log/unicorn.stdout.log"

/home/VPSUSER/Sinatra/config.rb

require './app.rb' run Sinatra::Application

/home/VPSUSER/Sinatra/app.rb

require 'sinatra' require 'sinatra/reloader' require 'sequel' require 'sqlite3' require "date" require "hamlit" set :haml, { escape_html: false } # hamlitを使うのに必要 get '/' do File.read(File.join('public', 'index.html')) end

その他環境

VPSUSER@IP-ADD-RE-SS ~/Sinatra> sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful VPSUSER@IP-ADD-RE-SS ~/Sinatra> ls public/ index.html stylesheets/
DISTRIB_ID=Ubuntu DISTRIB_RELEASE=20.04 DISTRIB_CODENAME=focal DISTRIB_DESCRIPTION="Ubuntu 20.04.3 LTS" nginx version: nginx/1.20.1 unicorn v6.0.0 sinatra (2.1.0)

追記 /var/log/nginx/error.log

2021/11/20 00:19:07 [crit] 34188#34188: *159 connect() to unix:/home/VPSUSER/Sinatra/tmp/sockets/Sinatra.sock failed (13: Permission denied) while connecting to upstream, client: 103.28.70.206, server: localhost, request: "GET /.env HTTP/1.1", upstream: "http://unix:/home/VPSUSER/Sinatra/tmp/sockets/Sinatra.sock:/.env", host: "IP.ADD.RE.SS" 2021/11/20 00:19:07 [crit] 34188#34188: *161 connect() to unix:/home/VPSUSER/Sinatra/tmp/sockets/Sinatra.sock failed (13: Permission denied) while connecting to upstream, client: 103.28.70.206, server: localhost, request: "POST / HTTP/1.1", upstream: "http://unix:/home/VPSUSER/Sinatra/tmp/sockets/Sinatra.sock:/", host: "IP.ADD.RE.SS" 2021/11/20 01:19:41 [crit] 34188#34188: *163 connect() to unix:/home/VPSUSER/Sinatra/tmp/sockets/Sinatra.sock failed (13: Permission denied) while connecting to upstream, client: 104.140.188.58, server: localhost, request: "GET / HTTP/1.1", upstream: "http://unix:/home/VPSUSER/Sinatra/tmp/sockets/Sinatra.sock:/", host: "IP.ADD.RE.SS:80" 2021/11/20 02:12:12 [crit] 34188#34188: *165 connect() to unix:/home/VPSUSER/Sinatra/tmp/sockets/Sinatra.sock failed (13: Permission denied) while connecting to upstream, client: 209.141.34.220, server: localhost, request: "GET /config/getuser?index=0 HTTP/1.1", upstream: "http://unix:/home/VPSUSER/Sinatra/tmp/sockets/Sinatra.sock:/config/getuser?index=0", host: "IP.ADD.RE.SS:80" <<中略>>

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

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

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

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

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

TaichiYanagiya

2021/11/18 01:19

Nginx の error_log に何かエラーが出ていないでしょうか?
decatail

2021/11/20 08:46

コメントありがとうございます。返信がが遅くなりすみません。取り急ぎ返信いたします。エラーログに大量の文言が書かれています。昨日今日は触っていないはずなのですが、誰かがアクセスを試みているのでしょうか。目立つのは「Sinatra.sock failed (13: Permission denied) while connecting to upstream」という文言ですね。手が空いたらまた触ってみます。ありがとうございます。
guest

回答1

0

connect() to unix:/home/VPSUSER/Sinatra/tmp/sockets/Sinatra.sock failed (13: Permission denied) while connecting to upstream

nginx ユーザーが /home/VPSUSER/Sinatra/tmp/sockets/Sinatra.sock にアクセスできないためです。
nginx ユーザーから /home/VPSUSER/Sinatra/tmp/sockets/Sinatra.sock に read+write できるよう、ソケットファイルのオーナー、パーミッション、および、各ディレクトリのパーミッションを確認ください。
(/home/VPSUSER/ が 700 になっていたら 755 に変更するなど)

投稿2021/11/21 07:13

TaichiYanagiya

総合スコア12173

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

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

decatail

2021/11/29 09:34 編集

コメントありがとうございます。「chmod -R 755 *」などしたり、「Sinatra.sock」が無かったので「touch Sinatra.sock」してみたり、nginxやunicornの再起動をしてみたりしたのですが、やはり「2021/11/22 12:45:34 [crit] 44853#44853: *10 connect() to unix:/home/VPSUSER/Sinatra/tmp/sockets/Sinatra.sock failed (13: Permission denied) while connecting to upstream, client: IP.ADD.RE.SS, server: localhost, request: "GET / HTTP/1.1", upstream: "http://unix:/home/VPSUSER/Sinatra/tmp/sockets/Sinatra.sock:/", host: "IP.ADD.RE.SS"」となってしまいます。「-rwxr-xr-x 1 VPSUSER VPSUSER 0 11月 22 12:23 Sinatra.sock*」となっているにもかかわらずです。「VPSUSER@AP-ADD-RE-SS ~> chmod 777 Sinatra/tmp/sockets/Sinatra.sock 」としても同様でした。手が空き次第もう少し探ってみます。
TaichiYanagiya

2021/11/22 04:40

ソケットファイルは受け持つプロセス側で作成するもので、touch で作成しても意味ないです。 Sinatra アプリ側のプロセスが起動しているかどうか、ソケットファイルできているか、ls -l で先頭に「s」がついているかとうか(srw-rw-rw-, srwxrwxrwx など) 確認ください。 ソケットファイルがよくわからなければ、TCP に切り替えてもいいと思います(セキュリティの観点から localhost のみ許可するように)。
decatail

2021/11/29 08:23

返信大変遅れてすみません。ソケットファイルは自分で作るものじゃないとのことですね。下記に調べた結果を記載しますが、やはりうまくソケットファイルが出来ないですね。ソケットファイルはよくわかりませんが、一方でTCPへの切替もまた分かりません。VPSにウェブサイトを展開したいと思っているので、localhostのみの許可だとウェブサイトの展開は出来ない(?)。nginxの本を借りたのでそれを読んでやってみたいと思います。ありがとうございます。 VPSUSER@IP-ADD-RE-SS ~/S/t/sockets> ls -lR .: 合計 0 -rwxrwxrwx 1 VPSUSER VPSUSER 0 11月 22 12:23 Sinatra.sock*
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問