こんにちは、こんです🦊
今回は、api.〜 や admin.〜 などのサブドメインを使って、1つのドメインを役割ごとに分ける方法を解説します!
1. 導入:この記事でできるようになること
この記事では、api.〜 / admin.〜 / demo.〜 などのサブドメインを作って、用途に応じてアプリを分けて運用する方法 を学びます。
• api.yourtool.xyz → API専用の入り口
• admin.yourtool.xyz → 管理画面
• demo.yourtool.xyz → デモ用環境
💡 なぜ必要?
• URLを整理してわかりやすくする
• 部分的に公開/非公開を分けやすい
• ロール(役割)ごとにセキュリティを分けられる
2. 背景・基礎知識
🔹 サブドメインとは?
• メインドメイン:yourtool.xyz
• サブドメイン:api.yourtool.xyz、admin.yourtool.xyz
「ドメインの前に好きな名前をつけて“別区画”を作れる仕組み」です。
📦 例えると:
yourtool.xyz = あなたのオフィスビル
api.yourtool.xyz = API部門のフロア
admin.yourtool.xyz = 管理室
demo.yourtool.xyz = 来客用の体験スペース
同じビル内で部屋を分けるように、サブドメインで役割を分担するイメージです。
3. 実践パート
✅ ステップ1:DNSでサブドメインを設定
お名前.comの管理画面から Aレコード を追加します。
例)api.yourtool.xyz を VPS に向けたい場合

✅ ステップ2:nginxでサブドメイン用の設定ファイルを作る
sudo nano /etc/nginx/sites-available/yourtool
server {
listen 80;
server_name api.yourtool.xyz;
location / {
proxy_pass http://localhost:5000; # APIアプリ
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
listen 80;
server_name admin.yourtool.xyz;
location / {
proxy_pass http://localhost:8000; # 管理画面
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
listen 80;
server_name demo.yourtool.xyz;
location / {
proxy_pass http://localhost:8501; # デモ環境
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
✅ ステップ3:設定を有効化&リロード
sudo ln -s /etc/nginx/sites-available/yourtool /etc/nginx/sites-enabled/
sudo nginx -t # 構文チェック
sudo systemctl reload nginx
✅ ステップ4:SSLも忘れずに
Let's Encrypt を使ってサブドメインもまとめて HTTPS 化しておくと安全です。
sudo certbot --nginx
4. つまずきポイントと対処法(FAQ)

5. まとめと次回予告
• サブドメインは 役割でURLを整理する最強の道具。
• nginxの設定 × DNS設定 で切り分けを実現できる。
次回は、サブドメインごとのアクセス制御や、パスワード保護の設定 について紹介予定です!