さくらのVPSにブログやwebアプリなどのサービスを複数運用させたかったので、調べたらバーチャルホストという方法がありました。
独自ドメインに文字列を追加することで、サブドメインとしてホスト名を増やせるようです。
イメージはこんな感じかな? 間違っていたらコメントください。
サブドメインを使ってバーチャルホストする場合のメリット・デメリットは以下の通りです。
メリット
- 独自ドメインを新たに作成しなくていいので、費用がかからない
- URLを同じにできる
- Nginx設定のlocationで悩まない
デメリット
- ホスト名を完全に別にすることはできない
※サブドメインではなく、マルチドメインの場合は可能
- アクセスが集中すると全てのサービスでパフォーマンスが落ちる
サブドメインを使ったバーチャルホストが向いているケース
- 小規模のサービスを複数稼働させる場合
- 1つのサービスにそれほどアクセスはない
- できるだけお金はかけたくない
自分にちょうど良さげだったので、サービスごとにサブドメインを使いバーチャルホストを作成しました。
その方法をシェアというかメモというか記事にしたいと思います。
実現したいこと
- サブドメインを使うことで、複数サービスを同じサーバー上で動かす
作業環境
- OS
- CentOS7
- webサーバー
- Nginx
参考サイト
手順
- さくらのVPSにサブドメインを登録
- Nginxの設定を変更
- ブラウザからアクセスして表示を確認
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の設定を書いていきます。
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