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

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

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

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

Ruby on Rails

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

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

2回答

19787閲覧

Nginxで複数ポートを起動させたい。

KentoSasamoto

総合スコア49

nginx

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

Ruby on Rails

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

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2015/12/13 22:21

編集2015/12/14 06:28

AWSに複数のRailsアプリをデプロイしたいと考えています。

今一つのアプリがすでに`http:domain.com:80/'で動いています。
これを今APIで使っているのでこのドメインは動かしたくありません。

そこで`http:domain.com:81/'で別のapplicationにアクセスできるようにしたいのですが、どのようにすればいいのでしょうか?
現在、nginxの設定は

/etc/nginx/conf.d/app1.conf

error_log /var/www/app1/current/log/nginx.error.log; access_log /var/www/app1/current/log/nginx.access.log; client_max_body_size 2G; upstream app1 { server unix:/var/www/app1/current/tmp/sockets/.unicorn.sock fail_timeout=0; } server { listen 80; server_name 52.34.83.184; keepalive_timeout 1; root /var/www/app1/current/public; try_files $uri/index.html $uri.html $uri @app; location @app { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://app1; } error_page 500 502 503 504 /500.html; location = /500.html { root /var/www/app1/current/public; } }

/etc/nginx/conf.d/app2.conf

error_log /var/www/app2/current/log/nginx.error.log; access_log /var/www/app2/current/log/nginx.access.log; upstream app2 { server unix:/var/www/app2/current/tmp/sockets/.unicorn.sock fail_timeout=0; } server { listen 81; server_name 52.34.83.184; keepalive_timeout 1; root /var/www/app2/current/public; try_files $uri/index.html $uri.html $uri @app; location @app { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass https://app2; } error_page 500 502 503 504 /500.html; location = /500.html { root /var/www/app2/current/public; } }

解決法わかる方お願いいたします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

別回答にします。

502エラーとのこと、

proxy_pass https://app2;

この箇所は「http://app2;」(httpsではなくhttp)だと思います。

投稿2015/12/14 08:54

TaichiYanagiya

総合スコア12146

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

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

KentoSasamoto

2015/12/14 09:44

ありがとうございます!見事解決しました!
guest

0

こちらの説明が分かりやすいですね。
【nginx】一つのサーバーで複数のサービスを運用するには

要するに、server {~} の部分をもう1セット追加し、listen で好きなポートを割り当てれば良いと思います。

投稿2015/12/14 06:04

pi-chan

総合スコア5936

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

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

KentoSasamoto

2015/12/14 06:39 編集

現時点でファイルは分かれていますが、serverは二つ書いたつもりなのですが動きませんポート81の方が動きません。。。 ERR_CONNECTION_TIMED_OUTというエラーが出ます
TaichiYanagiya

2015/12/14 07:00

"ss -tln" または "netstat -tln" で ":81" が LISTEN になっていますか? LISTEN になっていればファイアーウォール(iptables, firewalld など)の設定を見直してください。
KentoSasamoto

2015/12/14 07:38

AWSのポートを解放したら少し進んだのですが、502エラーが出てしまいます。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問