概要
ApacheやNginxなどのWEBサーバを構築してWEBアクセス確認する場合、「curlコマンド」を使用する。
(実行例)
[root]# curl -v http://dummy-host.example.com
* About to connect() to localhost port 8098 (#0)
* Trying ::1...
* Connected to localhost (::1) port 8098 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: localhost:8098
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Sun, 17 Jul 2022 09:51:54 GMT
< Server: Apache/2.4.54 (Unix)
< Last-Modified: Mon, 11 Jun 2007 18:53:14 GMT
< ETag: "2d-432a5e4a73a80"
< Accept-Ranges: bytes
< Content-Length: 45
< Content-Type: text/html
<
<html><body><h1>It works!</h1></body></html>
* Connection #0 to host localhost left intact
[root]#
この際、ドメイン(今回の例ではdummy-host.example.com)の名前解決ができなかったり、既存システムで同じドメインが使われている場合、上記のコマンドでは構築したWEBサーバに対して確認ができない。
解決方法
hostsファイルを設定する方法もあるが、今回はcurlコマンドに-Hオプションを指定し、Hostヘッダ情報を追加する方法を行う。
[root]# curl -v -H "Host:<ドメイン>" http://<WEBサーバのホスト名/IPアドレス>
以下が実行例である。
ローカル環境にApacheをインストールし、8098ポート番号でWEBアクセスを受け付けるように構築した。
[root]# curl -v -H "Host:dummy-host.example.com" http://localhost:8098
* About to connect() to localhost port 8098 (#0)
* Trying ::1...
* Connected to localhost (::1) port 8098 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Accept: */*
> Host:dummy-host.example.com
>
< HTTP/1.1 200 OK
< Date: Sun, 17 Jul 2022 10:05:13 GMT
< Server: Apache/2.4.54 (Unix)
< Last-Modified: Mon, 11 Jun 2007 18:53:14 GMT
< ETag: "2d-432a5e4a73a80"
< Accept-Ranges: bytes
< Content-Length: 45
< Content-Type: text/html
<
<html><body><h1>It works!</h1></body></html>
* Connection #0 to host localhost left intact
[root]#
Apacheに複数のVirtualHostを設定した場合でも、Hostヘッダを変更すればそれぞれのVirtualHostに対してWEBアクセス確認が可能である。
[root]# curl -v -H "Host:dummy-host2.example.com" http://localhost:8098
* About to connect() to localhost port 8098 (#0)
* Trying ::1...
* Connected to localhost (::1) port 8098 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Accept: */*
> Host:dummy-host2.example.com
>
< HTTP/1.1 200 OK
< Date: Sun, 17 Jul 2022 10:07:56 GMT
< Server: Apache/2.4.54 (Unix)
< Last-Modified: Mon, 11 Jun 2007 18:53:14 GMT
< ETag: "2d-432a5e4a73a80"
< Accept-Ranges: bytes
< Content-Length: 45
< Content-Type: text/html
<
<html><body><h1>It works!</h1></body></html>
* Connection #0 to host localhost left intact
[root]#