はじめに
初心者エンジニアが勉強した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サーバー比較そのメリットデメリット