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

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

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

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

nginx

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Q&A

解決済

1回答

254閲覧

macOS (Sequoia) + nginxでバーチャルホストを複数作りたい

tunaingot

総合スコア24

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

nginx

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

0グッド

0クリップ

投稿2025/01/22 06:15

実現したいこと

macOSのSafariで「localhost」をアクセスすると、nginxのwelcomeページが表示されます。
これと同じように、例えば
「welcomesite.com」
「testsite.com」
とsafariのアドレスバーに入力したら、自分の作ったindex.htmlをそれぞれ表示するようにしたいです。

nginxはインストール済みで、Welcome to nginx!のページは表示されています。

発生している問題・分からないこと

どの設定ファイルを編集すればいいかがわかりません。

まずhostsというファイルに作りたいバーチャルホスト名を追加するんだということはわかりましたが、このファイルがどこにあって、どのような記述を追加すればいいかがわかりません。

このほかに、.confというファイルを作るのか、どこかのファイルを編集すればいいかと思いますが、それもわかっていません。

.confにはこういう感じの記述をすればいいこともわかりました。

該当のソースコード

server { listen 80; server_name welcomesite.local; #charset koi8-r; #access_log logs/host.access.log main; location / { root /Users/myUserName/sites/welcomesite/; //自分のホームフォルダ上にサイトを置きたい index index.html index.htm; }

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

ひとまず、何をどうすればいいのかすらわかっていない状況です。

補足

特になし

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

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

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

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

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

guest

回答1

0

ベストアンサー

参考)https://faq.wadax.ne.jp/s/article/1527

/private/etc/hosts ファイルを調整すれば良いです。

127.0.0.1 localhost welcomesite.com testsite.com

とすればいいかと。

投稿2025/01/22 11:58

編集2025/01/22 11:58
AbeTakashi

総合スコア4889

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

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

tunaingot

2025/01/22 14:03

回答ありがとうございます。 hostsの場所はわかりました! 編集もできました。 サイトファイルの置き場所を指定したいです。 具体的には自身のホームフォルダのsites/welcomesite/という感じ。 現状調べたところ、 /opt/homebrew/var/www/index.html がサイトファイルの置き場所だということがわかりました。 これをホームに置きたいです。 これを指定するためのファイルがどれなのか...これがわからないです。
AbeTakashi

2025/01/22 15:06 編集

それはnginxのvirtualhostの設定で行います。nginxの設定ファイルnginx.conf内に include /etc/nginx/conf.d/*.conf; ↑ MacOSだとたぶん設置されてるディレクトリは違う みたいな設定があると思うので、そのディレクトリの中にバーチャルホストの設定ファイルを.confという拡張子をつけたファイル名で設置して(複数のサイトを作りたいなら複数設置できる)、nginxを再起動すれば反映されます。locationのrootにファイルがあるディレクトリを指定し、server_nameを/private/etc/hostsで設定したのと合わせるのが肝です。
tunaingot

2025/01/22 21:59

回答ありがとうございます。 まさにAbeTakashiさんのおっしゃる通りでした。 /opt/homebrew/etc/nginx/nginx.conf ファイルの中に設定を追記すれば解決しました。 このファイルの中にサーバー名やドキュメントのルートディレクトリを追記しました。 /private/etc/hosts の編集と合わせておくことも理解しました。 おかげさまで無事複数のバーチャルホストを作ることができました。 回答していただいた方々、ありがとうございます。 本当に助かりました。
tunaingot

2025/01/22 23:31

解決のコメントをした後、Macを再起動したら追加したバーチャルホストに繋がらなくなりました... localhost:8080はアクセスできるので、nginxは動いています。 何か操作を忘れているのでしょうか? 思いつくことがありましたら、ご教示いただけると助かります。
AbeTakashi

2025/01/23 00:46

「繋がらない」と端的に書かれても、第三者には伝わりにくいです。404エラーなのか500エラーなのか、もしくはそれ以外かで話は変わるので。まずはnginxが吐き出すアクセスログやエラーログなどをしっかり確認すると良いかと思いますし、そのログを見ても解決できないのなら、ログの内容を質問文に記載されると良いかと思います(この質問は解決済みになってしまったので、別の質問を立てた方がいいかも)。
tunaingot

2025/01/23 01:30

AbeTakashさん、ありがとうございます。 確かにどういうふうにつながらないのか...わからないですよね。 アドバイスありがとうございます。 別の質問にした方が良さそうです。 ホームディレクトリではなく、/var/www/の中にサイトのドキュメントを置く設定にするとうまく行くことはわかりました。 rootの設定をホームディレクトリから/var/www/に変更し、サイトデータを/var/www/に移しました。 もう少し調べてみて、解決しなければ別の質問を立てようと思います。 アドバイスありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.32%

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

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

質問する

関連した質問