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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

nginx

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

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Sinatra

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

Q&A

解決済

3回答

6595閲覧

nginxでwebアプリケーションの外部公開

liaq

総合スコア13

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

nginx

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

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Sinatra

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

0グッド

0クリップ

投稿2015/12/23 14:53

ubuntu+sinatra+nginx+unicornの構成でアプリケーションを外部から見れるようにしたいです。

ですが、localhostではアクセスできたのに
グローバルipアドレス:ポート番号
とブラウザに打ち込みアクセスしてもERR_CONNECTION_TIMED_OUTになってしまいアクセスすることができません。

ポートはufwを使って開放したつもりなのですが、どこで失敗しているのかもよくわからずに困っています。
設定ファイルは
unicornはこうなっていて

ruby

1# coding: utf-8 2 3@path = "/project_dir" 4 5worker_processes 4 # CPUのコア数に揃える 6working_directory @path 7timeout 300 8listen "#{@path}/tmp/sockets/unicorn.sock" ,:backlog => 64# Nginxのconfig内にあるupstreamで、このパスを指定 9pid "#{@path}/tmp/pids/unicorn.pid" # pidを保存するファイル 10# logを保存するファイル 11stderr_path "#{@path}/log/unicorn.stderr.log" 12stdout_path "#{@path}/log/unicorn.stdout.log" 13preload_app true

nginxはこうなっています。

nginx

1upstream unicorn_server { 2 server unix:/project_dir/tmp/sockets/unicorn.sock; 3} 4 5server { 6 listen 8080; 7 8 location / { 9 proxy_pass http://unicorn_server; 10 } 11} 12

nginxのserver_nameというところにドメインを設定しているサイトをよく見かけるのですが僕はこのアプリケーション用のドメインを持っていません。
外部に公開する方法がわかる方がいらしたら回答よろしくお願いします。

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

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

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

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

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

guest

回答3

0

自宅のルーターの設定はしていませんがさくらのvpsでサーバーを借りていたので、それを使って上記設定を使ってみたところ無事自宅のパソコンとスマホの両方からアクセスすることが出来ました。

回答してくださった方々、ありがとうございます。

投稿2015/12/24 11:55

liaq

総合スコア13

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

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

0

公開するサーバとアクセスした端末は同一ネットワーク上にあるのでしょうか?
同一ネットワークの場合、(ルーターで設定していなければ)グローバルIPで参照することはできません。
一度、スマートフォンなどでグローバルIPにアクセスしてみてはいかがでしょうか。

投稿2015/12/24 01:44

hyper-drums-ko

総合スコア736

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

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

liaq

2015/12/24 04:05

同一ネットワーク上ではアクセスできないのですね、知らずにLAN内のパソコンでアクセスしていました。 ですが、スマートフォンでアクセスしてみたものの504Gate wayエラーが出てきて結局アクセスすることはできませんでした。
guest

0

ベストアンサー

話の流れから、宅内サーバーを公開したいのだと解釈します。
障害の発生箇所の洗い出しがまず必要です。

まず、nginxまでアクセスが通っているかを確認するのが良いでしょう。
nginxのアクセスログを見れば、nginxまでアクセスが到達できているかわかります。
nginxまで到達できているのであれば、エラーログをチェックして問題点が洗い出せるでしょう。

到達できていないのであれば、宅内のルーターのセッティングが出来ていないという事です。
ルーターの設定を見直すと良いかと。

投稿2015/12/24 00:29

rifuch

総合スコア1901

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

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

liaq

2015/12/24 04:07

アクセスログとエラーログを見たところnginxまでアクセスが通っていないようです。 ユーザー名とパスワードを忘れてしまったのでそれを解決してからにはなりますがルーターの設定、見なおしてみます。
rifuch

2015/12/24 09:23

宅内サーバーを公開するには、ルーターの設定が必須です。 ちょっと調べればそのあたりの情報はすぐ見つかると思いますので、色々試してみると良いかと思います。 あと、hyper-drums-koさんがおっしゃっているとおり、同一ネットワーク内のアクセスは出来ないので、スマホか何かで確かめてみると良いかと。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問