CodeGym /コース /Docker SELF /ウェブサーバーのインストールと設定 (Nginx/Apache)

ウェブサーバーのインストールと設定 (Nginx/Apache)

Docker SELF
レベル 7 , レッスン 0
使用可能

ウェブサーバーのインストールと設定 (Nginx/Apache)

1. Webサーバーとは?

今日はNginxApache、2つの人気Webサーバーについて話します。講義の最後には、あなたのサーバーがインターネット上でユーザーをにこやかに迎える準備が整います。

コマンドに飛び込む前に、そもそも何を目指しているのかを考えましょう。Webサーバーというのは、HTTPリクエスト(例えば、ユーザーがブラウザでサイトのURLを入力する)を受け取り、それを処理して対応するコンテンツ(HTMLページ、ファイル、または「404 Not Found」のようなエラー)を返すプログラムです。これはユーザーとあなたのコンテンツをつなぐ架け橋です。

Nginx vs Apache: Webサーバーの戦い

もしNginxとApacheがカフェで出会ったら:

  • Nginxはラベンダーラテを注文して、すべてを非同期で処理するだろう。「リクエストを渡してくれ、すぐにファイルを返すよ。邪魔しないでね!」。
  • Apacheは、逆に、もっと伝統的に振る舞い、各タスクにスレッドを作成して、丁寧に対応し、ただし大量のリクエストでは少し遅くなるかもしれない。

簡単な違い:

特徴 Nginx Apache
アーキテクチャ 非同期 スレッド指向
パフォーマンス 高負荷時に高い 動的な処理 (PHP/Perl) に適応
簡潔性 設定が簡単、ただし独自の癖がある より汎用的だが、少し複雑

どちらを選ぶべきか?

  • 静的なファイル(例えばブログやランディングページ)だけのサイトなら、Nginxがおすすめです。
  • 動的なWebアプリケーション(例えばPHPサイト)を扱うなら、Apacheはより柔軟性を提供します。

2. Webサーバーのインストール

さて、なぜ必要なのか理解したところで、さっそくインストールを始めましょう。NginxとApacheの両方のインストール方法を見ていきます。どちらが好きか選んでインストールするか、両方一緒にインストールしてプロフェッショナル気分を味わいましょう。

Nginxのインストール

  1. パッケージリストを更新します:

    sudo apt-get update
    
  2. Nginxをインストールします:

    sudo apt-get install nginx
    
  3. サーバーのステータスを確認します:

    sudo systemctl status nginx
    

    問題がなければ、active (running)のような状態が表示されます。

  4. デフォルトのページを確認します: ブラウザを開き、http://localhostと入力します。Nginxのウェルカム画面が表示され、インストールが成功したことを確認できます。

Apacheのインストール

  1. パッケージリストを更新します:

    sudo apt-get update
    
  2. Apacheをインストールします:

    sudo apt-get install apache2
    
  3. サーバーのステータスを確認します:

    sudo systemctl status apache2
    

    Nginxと同様に、ステータスはactive (running)でなければなりません。

  4. デフォルトのページを確認します: ブラウザを開き、http://localhostにアクセスします。今度はApacheのデフォルトページが表示されます。


3. ウェブサーバーの基本設定

設定はどこに隠れているの?

  • Nginxのメイン設定ファイルはここにあります:

    /etc/nginx/nginx.conf
    
  • Apacheの場合:

    /etc/apache2/apache2.conf
    

お気に入りのエディタ (たとえばnano) を使って設定ファイルを開いてみて!

sudo nano /etc/nginx/nginx.conf
重要!

ここが君の最初の冒険の始まり:もしかしたら、今は何も分からないかも。設定ファイルってまるでRPGの呪文みたいに見えるかもしれない。でも心配しないで、これから一緒に学んでいこう!

サーバーの起動、停止、再起動

Linuxでサービスを管理する方法を知っていれば「半分は解決した」みたいなもの。これがウェブサーバーの基本的な管理コマンドだよ:

Nginxの場合:

sudo systemctl start nginx   # 起動
sudo systemctl stop nginx    # 停止
sudo systemctl restart nginx # 再起動
sudo systemctl reload nginx  # 設定の再読み込み

Apacheの場合:

sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
sudo systemctl reload apache2

設定の確認

サーバーを再起動する前に、設定にミスがないかいつも確認しよう:

  • Nginxの場合

      sudo nginx -t
    
  • Apacheの場合

      sudo apachectl configtest
    

設定ミスがある場合はエラーが表示されるから、うっかりサーバーを壊してしまうことはないよ!


4. デモ: 初めてのサイトを起動する

これから、Web開発者が大好きなことをやるよ – 驚くほどクリエイティブな名前「Hello Server」でサイトを作る。

Nginxの場合

  1. サイト用のディレクトリを作成する:

    sudo mkdir -p /var/www/hello
    sudo nano /var/www/hello/index.html
    

    ファイルに次の内容を記入する(そう、シンプルが一番だよ):

    <h1>Hello, Nginx Server!</h1>
  2. 設定を作る:

    sudo nano /etc/nginx/sites-available/hello
    

    シンプルな設定例:

    server {
        listen 80;
        server_name hello.local;
    
        root /var/www/hello;
        index index.html;
    
        location / {
            try_files $uri $uri/ =404;
        }
        }
  3. 設定を有効化する:

    sudo ln -s /etc/nginx/sites-available/hello /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl reload nginx
    
  4. ローカルマシンでhello.localというドメイン名を設定するために/etc/hostsにエントリを追加する:

    127.0.0.1 hello.local
    
  5. ブラウザでサイトを確認する: http://hello.local.

重要!

hostsファイルはIPアドレスとドメイン名のマッピングを含むよ。これがローカルDNSサーバーみたいなものだね。このファイルはすべてのオペレーティングシステムに存在する。Windowsにもあって、C:\Windows\System32\drivers\etc\hostsにあるよ。

Apacheの場合

  1. ディレクトリを作成する:

    sudo mkdir -p /var/www/hello
    sudo nano /var/www/hello/index.html
    

    ファイルに以下を記入する:

    <h1>Hello, Apache Server!</h1>
  2. 仮想ホスト設定を作成する:

    sudo nano /etc/apache2/sites-available/hello.conf
    

    設定例:

    <VirtualHost *:80>
        ServerName hello.local
        DocumentRoot /var/www/hello
    
        <Directory /var/www/hello>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
  3. 設定を有効化する:

    sudo a2ensite hello.conf
    sudo systemctl reload apache2
    
  4. /etc/hostsにエントリを追加する:

    127.0.0.1 hello.local
    
  5. 動作を確認する: http://hello.local.


今日のレクチャーを終えたら、主要なWebサーバーのインストールと設定が自分でできるようになるよ。ちょっと頑張れば、本格的なサイトやアプリケーションもデプロイできるようになる。HTTPSはまた別のタイミングで紹介するね。

コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION