初心者がまとめる初心者のためのWebサーバ その① Webサーバーとは?


はじめに

 初心者エンジニアが勉強したWebサーバーの知識をまとめていこうと思います。初心者がまとめたものなので、これからWebサーバーを勉強する人の足掛かりになればと・・・。

Webサーバとは

僕が思うにWebサーバは「Web」+「サーバ」という二つの言葉から成り立っているような気がするのでまずは二つの言葉の意味をさらっとみてみます。

Webとは

 Web(ウェブ)とはインターネットを利用して情報を発信したり閲覧したりするための仕組みのことで正式名称が「World Wide Web」で、URLにある「www」がそれにあたります。参照

サーバとは

 コンピュータネットワークにおいて、他のコンピュータに対し、自身の持っている機能やサービス、データなどを提供するコンピュータのこと。参照

つまり?

 Webサーバとは「インターネットを利用して情報を発信したり閲覧したりする機能やサービス、データなどを提供するコンピュータ」のことです。

一般的な解説↓

Webサーバ(ウェブサーバ、英:Web server)は、HTTPに則り、クライアントソフトウェアのウェブブラウザに対して、HTMLやオブジェクト(画像など)の表示を提供するサービスプログラム及び、そのサービスが動作するサーバコンピュータを指す。
https://ja.wikipedia.org/wiki/Web%E3%82%B5%E3%83%BC%E3%83%90

Webサーバソフトウェア

 サーバを自体はただのコンピューターなので、それだけではWebサーバとして機能しない。サーバにWebサーバソフトウェアをインストールすることで、Webサーバとして機能するようになります。(今お持ちのPCにもインストールするとWebサーバとして使うことができる。)

Webサーバーソフトウェアの種類(ざっくり特徴)

Apache(Apache HTTP Server)の特徴(参考資料)

  • 無料で使える
  • 無保証・無対応
  • 一番メジャー
起動してみる(Macの場合)
$ php -v
PHP 7.3.11 (cli) (built: Apr 17 2020 19:14:14) ( NTS )
(後略)

$ httpd -v
Server version: Apache/2.4.41 (Unix)
(後略)

$ sudo apachectl start 
Go to http://localhost:80/server-status in the web browser of your choice.
Note that mod_status must be enabled for this to work.

$ cd /private/var/log/apache2/

$ tail -f access_log

http://localhost:80/にアクセスする。
access_logに追記されていることを確認する。
(Ctrl+Cで終了する)

$ sudo apachectl stop(止める時)

参考資料
ApacheとNginxについて比較
MacのApacheのサーバーログとエラーログの場所

nginxの特徴(参考資料)

  • 無料で使える
  • 無保証・無対応
  • 負荷分散
起動してみる(Macの場合)
$ brew install nginx
インストールが開始される。(Homebrewは入れておく)

$ nginx
nginxが起動する。

$ cd /usr/local/etc/nginx/

$ cat nginx.conf
(前略)
http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       8080; ←確認する。
        server_name  localhost;
(後略)

$ cd /usr/local/var/log/nginx/

$ tail -f access.log 

http://localhost:8080/ にアクセスする。
access.logに追記されていることを確認する。
(Ctrl+Cで終了する)

$ nginx -s stop

IISの特徴(参考資料)

  • Microsoft制作
  • 無料
  • 視覚的にマウス操作できる
  • 比較的やさしい

NginxとApacheのWEBサーバー比較そのメリットデメリット