Nginxのインストール
MariaDB同様にVirtualBoxベースであげていきます。
一応、Nginxのインストールだけではなく、ルートディレクトリの変更及びユーザーの変更を行います。
普通にインストール
pacmanコマンドを使用して普通にNginxを入れていきます。
ただ…安定版と最新版の2種類があるのでお好きな方を選択してください。
今回は、最新版をインストールしていきます。
pacman -S nginx-mainline
インストールが完了したら、サービスを起動します。
systemctl start nginx
systemctl enable nginx
サイトにアクセスして確認
ひとまず、サイトにアクセスして確認するのですが…
VirtualBoxのネットワーク設定をNATにしていると少々ややこしいので、一旦OSをシャットダウンしてVirtualBoxにNICを追加します。
VirtualBoxの設定変更
まずは以下のコマンドでVMシャットダウンしてください。
shutdown -h now
シャットダウンが確認できたら、VirtualBoxの設定を変更していきます。
まずは、設定を変更したいVMを選んだ状態で、「設定」ボタンをクリックします。
「設定」画面が表示されます。
次に、左側の「ネットワーク」をクリックします。
右側がネットワークの設定画面に切り替わります。
NICを追加したいので、「アダプター2」のタブをクリックします。
二枚目のNICの設定をここでします。
二枚目のNICを有効にしたいので、「ネットワークアダプターを有効化」にチェックを入れます。
一先ず、二枚目のNICが有効になります。
割り当てを「ホストオンリーアダプター」に変更します。
これを選択することにより、なんというか…クロスケーブルでVMとPCを接続したような感じになります。
VirtualBoxの設定を変更したら、VMを起動してください。
NICの設定
VMの再起動が完了したら、以下のコマンドでNICが追加されたことを確認します。
ip a
以下のように表示されるかと思います。
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:06:6c:b6 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
valid_lft 85088sec preferred_lft 85088sec
inet6 fe80::a00:27ff:fe06:6cb6/64 scope link
valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 08:00:27:35:44:66 brd ff:ff:ff:ff:ff:ff
「enp0s8」が追加されたNICになります。
次にVirtualBox側の、DHCPサービスの設定を見てみます。
VirtualBoxのメニューから「ファイル→ホストネットワークマネージャー」をクリックします。
すると、「ホストネットワークマネージャー」のウインドウが表示されます。
下の様な画面が表示されるはずですが、「DHCPサーバー」タブが表示されていない場合は「プロパティ」をクリックしてください。
「DHCPサーバー」のタブをクリックします。
ウインドウ下半分にDHCPサーバーの情報が表示されます。
「アドレス下限」と「アドレス上限」に注目してください。
この範囲のアドレスが、DHCPサーバーにより自動で割り振られるIPアドレスになります。
今回は固定IPアドレスにしたいので、この範囲外の任意のアドレスを選択します。
(と言っても、「192.168.56.1」はホストのアドレスに設定されているのでNGですが…)
今回は「192.168.56.11」に設定していきたいと思います。
設定するIPアドレスが決まったので、具体的に設定をしていきます。
以下のコマンドでネットワーク定義ファイルを新規作成します。
nano /etc/systemd/network/enp0s8.network
内容は以下のとおりです。
[Match]
Name=enp0s8
[Network]
Address=192.168.56.11/24
ファイルを作成したら、以下のコマンドでサービスを再起動します。
systemctl restart systemd-networkd
また、以下のコマンドで「enp0s8」に指定したIPアドレスが設定されていることを確認します。
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:06:6c:b6 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
valid_lft 86396sec preferred_lft 86396sec
inet6 fe80::a00:27ff:fe06:6cb6/64 scope link
valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:35:44:66 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.11/24 brd 192.168.56.255 scope global enp0s8
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe35:4466/64 scope link
valid_lft forever preferred_lft forever
Nginxの確認
やっと、Nginxが正常に起動しているかの確認です。
ホストマシンのブラウザで以下のURLを参照します。
http://192.168.56.11
実行ユーザーの変更
Nginxを起動するユーザーを変更して、セキュリティの向上を図ります。
まずは以下のコマンドで、ユーザーを追加します。
useradd -m [userid]
一応、ユーザーディレクトリを作成していますが、不要であれば「-m」を削除して実行してください。
次にNginxの設定ファイルを変更します。
以下のコマンドで、設定ファイルを開きます。
nano /etc/nginx/nginx.conf
一番最初の行を以下のように変更します。
【変更前】
#user html;
【変更後】
user [useerid];
変更したら以下のコマンドでnginxを再起動します。
systemctl restart nginx
ルートディレクトリの変更
次にルートディレクトリの変更を行います。
今回は仮に「/share/www」ディレクトリに変更すると仮定して、手順を挙げます。
以下のコマンドを実行して、nginxの設定ファイルを開きます。
nano /etc/nginx/nginx.conf
ファイル内のルートディレクトリの設定をしている個所を、以下のように修正します。
【修正前】
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
【修正後】
location / {
root /share/www;
index index.html index.htm;
}
変更したら以下のコマンドでnginxを再起動します。
systemctl restart nginx