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

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

新規登録して質問してみよう
ただいま回答率
85.49%
ドメイン

ドメインとは本来、領域や範囲の意味を持ち、インターネット上では特定の部分領域を指します。ネットワークやコンピュータの識別に利用され、所得することでホームページを公開したり、メールアドレスを作成できます。

Ruby on Rails

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

AWS(Amazon Web Services)

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

Q&A

解決済

2回答

916閲覧

AWSで取得したipにドメインを紐づけたいのですが上手くいきません バーチャルホストの設定詳細について

mi-tomo

総合スコア6

ドメイン

ドメインとは本来、領域や範囲の意味を持ち、インターネット上では特定の部分領域を指します。ネットワークやコンピュータの識別に利用され、所得することでホームページを公開したり、メールアドレスを作成できます。

Ruby on Rails

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

AWS(Amazon Web Services)

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

0グッド

0クリップ

投稿2020/01/29 14:59

編集2020/02/03 14:31

前提

ruby on rails で作成したアプリをAWSにデプロイしipアドレスで検索すればサイトが開く状態になってます
ここにドメインを割り当てたく「エックスドメイン」でドメインを取得しました
ダダドメインにアクセスしても意図したページが開きません

###実現したいこと
ipアドレスにドメインを紐付けたい

(以下に行った作業の流れを記述します)

①以下のサイトを参考にAWSの Route 53 でDNS設定を行いました(Nginx バーチャルホストの設定はよくわからなかったので行わなかった)
https://qiita.com/HitomiHoshisaki/items/7d7345eb67390f16fed4

②インターネットブラウザで取得したドメインにアクセスすると
「Welcome to nginx on the Amazon Linux AMI!」となってしまい
以下の記事と全く同じ現象になってしまったのでNginx バーチャルホストの設定が必要と認識
https://teratail.com/questions/52240

③Nginxにバーチャルホストの設定がよくわからなかったため以下の記事を参考に
http://t-tsuyoshi.hatenablog.com/entry/2017/08/05/185708
設定

$ sudo /etc/init.d/nginx configtest nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

と表示されるところまで確認

④いざドメインにアクセスすると「Welcome to nginx on the Amazon Linux AMI!」から
「404 Not Found  nginx/1.16.1」に変わってしまい上手く表示することができません
$ sudo vim /etc/nginx/nginx.conf
では

user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { 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; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; include /etc/nginx/sites-enabled/*; include /etc/nginx/conf.d/*.conf; index index.html index.htm; server { listen 80 default_server; listen [::]:80 default_server; server_name localhost; root /usr/share/nginx/html; include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } } }

上のような内容になっており
$ sudo vim /etc/nginx/sites-available/car-ko-bo.comでは

server { listen 80 ; server_name ドメイン.com; root /home/ubuntu/ドメイン.com; }

のように記述してあります
$ sudo vim /etc/nginx/nginx.conf内の
default_serverがダメなのかと思い両方消したりしてみたのですが
やはり上手くいきません

###助けて頂きたいこと
何の記述がいけないのか?
あるいは
〇〇のサイトを見てそれと同じように行えば確実にドメインに紐付けれるなどありましたら
ご教示頂けないでしょうか

よろしくお願いします

追記
ご提案いただいた/etc/nginx/conf.d/ドメイン名.conf で作り直しました
/etc/nginx/conf.d/ドメイン名.confの内容

server { listen 80; server_name ドメイン.com; root /var/www/アプリ名/current/public; location ^~ /assets/ { gzip_static on; expires max; add_header Cache-Control public; root /var/www/アプリ名/current/public; } try_files $uri/index.html $uri @unicorn; location @unicorn { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://app_server; } error_page 500 502 503 504 /500.html; }

この内容で確認したところ確認できました!
本当に親切にアドバイスして頂きありがとうございました

本当に助かりました

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

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

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

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

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

winterboum

2020/01/29 21:16

プログラムや設定fileは画像貼り付けではなく、<code>を使ってtextでコピペしてください。読みにくいと回答つきにくいです。 /etc/nginx/conf.d にどんなfileを定義しましたか。そのfileを pumaとかUnicornとか使っていますか、そのsetteifileを
mi-tomo

2020/01/30 12:18

winterboum様 至らないところが多々あるにもかかわらず教えて頂きありがとうございます /etc/nginx/conf.d の中にはrails.confとvietual.conf しかなく特に定義した記憶はありません /etc/nginx/conf.dに何か定義しないといけないということなのですね?ヒントありがとうございます 調べてみます!
winterboum

2020/01/30 12:53

pumaとかUnicornとか使っていますか、そのsetteifileを
mi-tomo

2020/01/30 13:07

ご連絡ありがとうございます的外れなファイルだった時はすみません 正しいファイルでない時はその参照方法も教えて頂けないでしょうか お手数をおかけしてすみませんがよろしくお願いします
guest

回答2

0

ubuntu なのか Amazon Linux なのかわかりませんが、nginx.conf で include /etc/nginx/sites-enabled/*; としているので、作成した /etc/nginx/sites-available/car-ko-bo.com のシンボリックリンクを /etc/nginx/sites-enabled/ に作成しないと読み込まれないのではないでしょうか。

ln -s /etc/nginx/sites-available/car-ko-bo.com /etc/nginx/sites-enabled/

投稿2020/01/31 07:41

TaichiYanagiya

総合スコア12141

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

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

winterboum

2020/01/31 07:47

それもありますね。 ただ、その記載内容が Unicornの接続定義、Railsをつかった場合のrootの書き方になっていないので、linkを紹介しています
mi-tomo

2020/01/31 10:37 編集

TaichiYanagiya様 コメント頂きありがとうございます。 sudo ln -s /etc/nginx/sites-available/car-ko-bo.com /etc/nginx/sites-enabled/ のシンボルリンクも設定しましたが「404 Not Found  nginx/1.16.1」の画面になってしまいました 根本的なところで何かを間違えているのだと思いますが、一度整理するために作成したフォルダーやファイル、シンバリックリンクなどを消して「Welcome to nginx on the Amazon Linux AMI!」が表示されるところまで戻って 再度トライしてみようと思います >winterboum様 「記載内容が Unicornの接続定義、Railsをつかった場合のrootの書き方になっていない」というヒントありがとうございます!
guest

0

ベストアンサー

nginx + unicorn + Rails という組み合わせの場合、nginxとUnicornを連携させる設定が必要です。
多くの場合
/etc/nginx/conf.d/ドメイン名.conf
というのを作ってそこに記述します。
その書き方は unginx unicorn で検索すると山ほど出てきます。
例えば

で、AWSの場合 https でのアクセスにする場合、取得したドメイン名のままではやらなければならないことが増えます。
ので、取得したドメイン名が example.com なら www.example.com というようなサブドメインも登録してそれで行うのが良いです。

なおこの例えばの設定では server_name <OSのIP>; というところがあります、
ここに www.example.com としてください

投稿2020/01/30 21:46

winterboum

総合スコア23324

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

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

mi-tomo

2020/01/31 10:18

とてもご親切に教えて頂き本当にありがとうございます 教えて頂いた内容やリンクを参考に学ばせて頂きなんとなくではありますが 少し作りが理解できたような気がしますが、まだ解決までは到達できてませんので nginxとUnicornを連携で検索をかけながら学んで行こうと思います 本当にご親切にありがとうございました 私もいつかwinterboumさんのように誰かの力になれるように頑張ります!
winterboum

2020/01/31 10:28

うまくいかなかったらまた載せてください
mi-tomo

2020/01/31 10:39

とても親切に本当にありがとうございます 教えて頂いたリンクを参考にもう一度やってみます!
mi-tomo

2020/02/03 14:33

winterboum様 アドバイス頂いたrootのところが間違っていました ご提案いただいた/etc/nginx/conf.d/ドメイン名.confの方法で表示することができました とても親切にご教えて頂き本当にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問