6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

1台のサーバでサブドメインを使い複数サービスを動かす方法【バーチャルホスト】

Last updated at Posted at 2021-02-27

さくらのVPSにブログやwebアプリなどのサービスを複数運用させたかったので、調べたらバーチャルホストという方法がありました。

独自ドメインに文字列を追加することで、サブドメインとしてホスト名を増やせるようです。
イメージはこんな感じかな? 間違っていたらコメントください。

Untitled Diagram (1).jpg

サブドメインを使ってバーチャルホストする場合のメリット・デメリットは以下の通りです。

メリット

デメリット

※サブドメインではなく、マルチドメインの場合は可能

  • アクセスが集中すると全てのサービスでパフォーマンスが落ちる

サブドメインを使ったバーチャルホストが向いているケース

  • 小規模のサービスを複数稼働させる場合
  • 1つのサービスにそれほどアクセスはない
  • できるだけお金はかけたくない

自分にちょうど良さげだったので、サービスごとにサブドメインを使いバーチャルホストを作成しました。
その方法をシェアというかメモというか記事にしたいと思います。

実現したいこと

  • サブドメインを使うことで、複数サービスを同じサーバー上で動かす

作業環境

  • OS
    • CentOS7
  • webサーバー
    • Nginx

参考サイト

手順

  1. さくらのVPSにサブドメインを登録
  2. Nginxの設定を変更
  3. ブラウザからアクセスして表示を確認

1.さくらのVPSにサブドメインを登録

サブドメインの登録は参考サイトの通りにやれば簡単にできます。
[sakura vps] さくらのvps(nginx)でサブドメインを設定する

作成してから1時間くらい待たないと反映されないので、作業の前に作っておくといいです。

2.Nginxの設定を変更

まずはターミナルで/etc/nginx/conf.d/に移動

cd /etc/nginx/conf.d/

分かりやすいように、サービス名ごとにconfファイルを作成
touchでファイル作ってもいいですが、viで編集するのでvi [サービス名.conf]とかでいいかも

vi サービス名.conf

nginxの設定を書いていきます。

サービス名.conf
server {
        listen 80;
        server_name sub1.xxx.com;
        location / {
            index index.html;
            root /usr/share/nginx/html;
        }
    }

解説

  • server_nameには先ほど作成したサブドメインと独自ドメインをドットでつなげたものを記入
  • 後は通常のNginx設定と同じ
  • これを動かしたいサービスごとに作成します。

書き終えたら:wqで保存して終了
Nginxを再起動して設定を反映させます

systemctl restart nginx

3.ブラウザからアクセスして表示を確認

実際にブラウザからアクセスしてサブドメインごとに設定したページが表示されれば完了です。

参考サイト

次の目標

  • サブドメインのhttps化

Let's Encryptでhttps化しているなら以下のコマンドだけでhttps化が完了します。

certbot --nginx
6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?