
本記事では、ConoHa VPSでゲームサイトを作るためにnginxを設定やパーミッションの設定方法などテストページ公開までを初心者向けに詳しく丁寧に解説しています。
非エンジニアの私が実際に設定して困ったことや応用情報技術者試験に役立ちそうな情報も散りばめたので、ぜひ最後までご覧ください。
SSH接続やドメイン設定が終わっていない方は、先に下の記事で設定してくださいね。


本記事では以下のような手順で進めます。
- nginxをインストールする
- nginxを設定する
- 仮公開用のhtmlファイルを準備する
- セキュリティグループを設定する
nginxは、高速・軽量なオープンソースのWebサーバー兼リバースプロキシです。
イベント駆動型の非同期アーキテクチャにより、少ないリソースで数万規模の同時接続を効率処理します。静的コンテンツ配信、ロードバランシング、HTTPキャッシュ、TLS終端などに加え、設定のシンプルさもあって初心者にも人気のWebサーバーです。
Apacheとnginxとの比較表↓
項目 | nginx | Apache |
---|---|---|
アーキテクチャ | イベント駆動シングルスレッド型 | マルチプロセス/マルチスレッド型 |
同時接続数・メモリ | 大量同時接続を少数プロセスで効率処理しメモリ使用量が安定 | リクエスト増加に伴いプロセス数・メモリ消費が増加 |
モジュール | コンパイル時に追加、リバースプロキシや静的配信向けが中心 | 動的にロード可能で認証、リライト、動的コンテンツ対応が豊富 |
主な用途 | 静的コンテンツ配信、リバースプロキシ、ロードバランサ | PHPなど動的処理、高度な認証・リダイレクト、細かな設定管理 |
私が実際に躓いたところや、調べた内容も網羅しつつ、初心者の方でもWebページ公開まできっとたどり着けるように、できるだけ1つ1つを丁寧に解説することを心がけましたので、ぜひ最後までご覧になってくださいませ。
nginxをインストールする
さまざまな方法でSSH接続できますが、あらかじめConfigファイルが作ってあれば、bash(Ubuntu)やPower shell(Windows)では以下のコマンドで簡単に接続できます。
ssh [サーバーのホスト名]
sudo apt update
sudo apt install nginx
sudo systemctl status nginx
このコマンドで active (running)
と表示されれば、インストールと同時に正常に起動したことが確認できます。
nginxの起動コマンド一覧
コマンド | 役割 |
---|---|
sudo systemctl status nginx | nginxの現在の動作状態(起動中、停止中など)を確認 |
sudo systemctl stop nginx | nginxサービスを停止する |
sudo systemctl start nginx | nginxサービスを開始する |
sudo systemctl restart nginx | nginxサービスを再起動する(サービスを一度完全に停止) |
sudo systemctl reload nginx | nginxサービスをリロードする(設定ファイルを再読み込み) |
sudo systemctl disable nginx | OS起動時の自動起動を無効にする |
sudo systemctl enable nginx | OS起動時の自動起動を有効にする |
nginxを設定する
nginxを起動しただけでは、まだWebページを公開することはできません。Webページを公開するためには、このあとnginxを設定して、ファイアウォールを設定する必要があります。
まずは設定例としてgame.doc778.com
というドメインのFQDNで設定ファイルを作成します。
以下のコマンドを使う場合は必ずgame.doc778.com
の部分をご自身のFQDNでに変更して使ってください。
nginxの主な設定ファイルとディレクトリ
nginxは設定ファイルを設定することでWebサーバーとして動作します。
ディレクトリ | 用途 | 備考 |
---|---|---|
/etc/nginx/nginx.conf | メイン設定ファイル(全体設定など) | サーバ共通 |
/etc/nginx/conf.d/ | サブ設定(siteごとにconfを分割配置) | includeで読み込む |
/etc/nginx/sites-available/ | サイト別設定ファイルの格納先 | Debian/Ubuntu系 |
/etc/nginx/sites-enabled/ | 有効化した設定ファイル(シンボリックリンク) | Debian/Ubuntu系 |
nginxの設定手順
sudo nano /etc/nginx/sites-available/game.doc778.com.conf
game.doc778.com
用の設定ファイルを作成します。
nano
の場合は Ctrl+o → Enter → Ctrl+x
以下はサンプルページを表示させるだけの最も基本的な設定です。
server {
listen 80;
server_name game.doc778.com;
root /var/www/game.doc778.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
よく使うディレクティブまとめ
設定項目 | 主な用途 | よく使う値例 |
---|---|---|
listen | ポート指定 | 80、443 |
server_name | ドメイン名指定 | example.com、localhost |
root | ドキュメントルートのパス | /usr/share/nginx/html |
index | デフォルトのページファイル名 | index.html、index.php |
access_log | アクセスログの保存場所と書式 | /var/log/nginx/access.log main |
error_page | エラー時の表示ページ | error_page 404 /404.html; |
location | パス/条件ごとの振り分け | location /images/ { … } |
proxy_pass | リバースプロキシの転送先指定 | proxy_pass http://127.0.0.1:3000; |
- ディレクティブの末尾は「;」必須
- ブロック(server, location, http等)は「{ }」でまとめる
- ファイルのパスやポート番号にミスがないか注意
- 設定ミスがあるとnginxが起動できない
sites-available
ディレクトリに置いただけでは設定は読み込まれません。sites-enabled
ディレクトリにシンボリックリンク(ショートカットのようなもの)を作成して、設定を有効にします。
sudo ln -s /etc/nginx/sites-available/game.doc778.com.conf /etc/nginx/sites-enabled/
sudo ln -s [元のファイル] [リンク先のファイル]
このコマンドにより、Nginxが起動時に読み込む sites-enabled
ディレクトリに、実際のファイルへの参照が作成されます。
インストール直後のnginxには、デフォルトのウェルカムページを表示するための設定 (default
) が有効になっています。これを無効化しないと、意図せずデフォルトページが表示されてしまうことがあるため、リンクを削除しておくのが一般的です。
sudo rm /etc/nginx/sites-enabled/default
rm
コマンドでシンボリックリンクを削除するだけなので、元の設定ファイル (/etc/nginx/sites-available/default
) は残ります。後で必要になれば再度リンクを作成できます。
sudo nginx -t
以下のように表示されればOKです。
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
sudo systemctl reload nginx
何もエラーが表示されなければリロード成功です。
Ubuntuを触っているとsystemd(読み:システムディー)というコマンドをよく使います。正直、私はよく理解せずに使っていました。ですので、この機会にちゃんと調べましたので共有します。
systemdとは、Linuxシステムの「起動とサービス管理」を統一的に行うための仕組み(initシステム)です。
コンピュータの電源投入後、最初に立ち上がるユーザ空間のプロセス(PID=1)として動き、「サービスの起動・停止・自動起動・監視・依存関係管理」などサーバ運用に不可欠な機能を担当します。
ちなみに、nginxをインストールすると、サーバーを再起動したときに自動的にnginxも起動してきます。(たぶん)これはsystemdの働きによるものです。(もし自動起動しない場合は、systemctl enable nginx
で自動起動処理を有効にしてください)
尚、上記(「nginxの設定手順」のStep6)ではsystemctlを使う方法で説明しましたが、systemctlが利用できない環境ではsudo nginx -s reload
を利用してください。このコマンドは直接nginxのコマンドを使ってリロードすることができます。
しかし、この場合システム側で管理されなくなるため、システムログに記録されなくなったり、他のプロセスで設定しているセキュリティ設定が機能しなくなったりする可能性があるので注意が必要です。
また、sudo systemctl restart nginx
でも同様に設定ファイルを読み込むことができますが、こちらの場合は、プロセスを停止して新しいプロセスが立ち上がるので一瞬サーバーが止まります。
結論としては、「sudo systemctl reload nginx
はシステムコマンドであり、他のプロセスとの依存関係なんかも考慮しつつ安全なので、できるだけsystemctlを使いましょう」です。
状態監視のための関連コマンド(一覧)
コマンド例 | 主な役割 |
---|---|
sudo systemctl status nginx | サービス詳細・状態・ログを調べる |
sudo systemctl restart nginx | サービス再起動 |
sudo systemctl reload nginx | 設定の再読み込み(プロセス停止なし) |
sudo systemctl stop nginx | 停止 |
sudo nginx -t | 設定ファイルの文法エラーチェック |
sudo tail -n 50 /var/log/nginx/error.log | nginxのエラーログ直近50行表示 |
仮公開用のhtmlファイルを準備する
次は、/var/www
にgame.doc778.comディレクトリを作成し、仮公開用のHTMLファイルのindex.htmlを配置します。
尚、このディレクトリはなにも設定しなくても最初からnginxがアクセスできるディレクトリです。今回はテストなのでここを利用します。
sudo mkdir -p /var/www/game.doc778.com
/var/www/
配下に新ディレクトリを作成します。「-p」はこのケースでは不要ですが、これをつけると親ディレクトリが存在しない場合でも自動作成してくれます。
sudo chown -R [ユーザー名]:www-data /var/www/game.doc778.com
[ユーザー名]:www-dataは所有者をユーザーに設定し、グループをwww-data(この場合nginx)に指定する設定です。
こうすることで、このディレクトリにユーザーが配置したHTMLファイルをnginxが実行することができます。
ちなみにnginxはデフォルトでは「www-data」というユーザー名・グループ名で動いています。
もし、別ユーザーの場合はps aux | grep nginx
等で確認して適宜変更してください。
- 先に少し触れましたが、
/var/www/
以外の場所にディレクトリを作る場合はそのディレクトリ(親階層)にnginxからのアクセス権限を与える必要があります。 - 「chown -R」で配下すべてが同じ設定になります。(「-R」は再帰的(recursive)のRです)
sudo chmod -R 755 /var/www/game.doc778.com
これは標準的なWeb公開ディレクトリパーミッション設定です。
「755」の意味
- 「r」→読み取り権限、「w」→書き込み権限、「x」→実行権限
最初の「7」は「所有者権限」:4(r)+2(w)+1(x)=7
次の「5」は「グループ権限」:4(r)+0(w)+1(x)=5
最後の「5」は「その他の権限」:4(r)+0(w)+1(x)=5
つまり今回の設定では、所有者つまり[ユーザー]は読み書き実行の権限があり、nginx(www-data)およびその他のユーザーは読み取りと実行権限を持ちますが、書き込みはできません。
権限パターンと動作一覧表
パーミッション例 | ディレクトリ所有者 | グループ | 所有者権限 | グループ権限 | その他権限 | nginxからのアクセス | 備考 |
---|---|---|---|---|---|---|---|
755 | [ユーザー名] | www-data | rwx | r-x | r-x | OK | 標準的Web公開設定。 |
775 | [ユーザー名] | www-data | rwx | rwx | r-x | OK | グループメンバー全員が編集OK。 |
750 | [ユーザー名] | www-data | rwx | r-x | — | OK(外部は不可) | 社内利用や限定公開ディレクトリ等で。 |
700 | [ユーザー名] | www-data | rwx | — | — | NG | 所有者だけ操作可能、Web公開では非推奨 |
744 | [ユーザー名] | www-data | rwx | r– | r– | NG | グループ・他にx権限なしでNG |
644 | [ユーザー名] | www-data | rw- | r– | r– | NG | ディレクトリ自体にx権限なし |
用途別Linuxパーミッション設定例(参考)
パーミッション | 用途例・コメント |
---|---|
777 | 誰でも何でも可能。テスト用。安全面で本番では非推奨 |
775 | グループ共同作業用共有ディレクトリ |
755 | Web公開ディレクトリ・プログラムbin/ |
700 | 所有者だけ使える秘密領域、個人用スクリプトなど |
644 | 公開ファイル(htmlや画像・設定ファイル等) |
600 | 秘密鍵、設定など「本人だけ読める・書ける」ファイル |
sudo nano /var/www/game.doc778.com/index.html
nanoエディタで以下を全文貼り付けて保存( Ctrl+o → Enter → Ctrl+x )
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="robots" content="noindex">
<title>テストサイト - 準備中</title>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
margin-top: 100px;
}
h1 {
color: #333;
}
</style>
</head>
<body>
<h1>テストサイト - 準備中</h1>
<p>現在サイトを構築中です。もうしばらくお待ちください。</p>
</body>
</html>
ls -l /var/www/game.doc778.com
cat /var/www/game.doc778.com/index.html
ls -l
コマンドはindex.htmlが配置されているかどうかがわかります。cat
コマンドではindex.htmlの中身が確認できます。
セキュリティグループを設定する
セキュリティの設定はdefaultのままでは「同一アカウントで作成されたVPS以外の通信はすべて遮断する」設定のようです。
Webサイトを表示させるには、あらかじめ必要な許可設定を追加する必要があります。
セキュリティグループについての関連記事

セキュリティグループの変更方法
今回はWebページを公開する目的なので「IPv4v6-Web」を使います。
今回は80ポートしか使いませんが、この設定は80ポートと443ポートを解放する設定です。
- 80番ポートとは、インターネット上の通信で、WebブラウザがWebサーバーと通信する際に、HTTPプロトコルで使用されるポート番号のことです。
- ポート443は、インターネット上でHTTPS (HTTP Secure) 通信を行う際に使用される標準ポート番号です。




私の場合はCustomWebというのを自作していますが、以前の記事を参考にやってくれてる方はIPv4v6-SSHというのがすでに追加されていると思うので、その下にIPv4v6-Webを追加することになると思います。
本記事では、ConoHa VPSの仮想ファイアウォール機能を使っていますが、本番環境ではソフトウェアファイアウォールを併用します。
選んだOSによって違うようですが、私の選んだUbuntu24.04ではufwがインストールされていますが、最初は無効になっているようです。(無効の場合はセキュリティグループの設定がそのまま適用されます)
使用したい場合は、まず以下のコマンドで有効か無効かを調べてください。
sudo ufw status
結果がinactive
なら、ファイアウォールはまだ機能していません。
以下のコマンドは、SSH接続用のポート22とHTTP接続用のポート80を解放するコマンドです。特にSSHポートは必ず事前に確認してください。
ポート番号が間違っていると接続が切れてしまう可能性があるので、慣れてないうちはフォールバックも兼ねてConoHa VPSの管理画面から設定することをオススメします。
sudo ufw default deny incoming \
&& sudo ufw default allow outgoing \
&& sudo ufw allow 22/tcp \
&& sudo ufw allow 80/tcp \
&& sudo ufw enable \
&& sudo ufw status verbose
本コマンドは、一般的な安全設定ですが、設定内容を理解して、自己責任において注意して使ってください。
セキュリティグループ設定の公式ガイド
まとめ
これでgame.doc778.com(←ご自身のドメインのURL)にアクセスするとテストページが表示されるはずです。

このようなに表示されれば成功です。うまく表示されましたか?
今回はnginxのして簡単Webサイトの公開手順を解説しました。これで自分の作ったコンテンツを自由に公開することができるようになりました。
しかし、ゲームサイト公開まではまだまだ道半ばです。
次はSSLかなぁ。最後までご覧いただきありがとうございました。