「Nginxのインストール」の版間の差分

提供: とある社畜の頭脳整理
ナビゲーションに移動 検索に移動
 
(同じ利用者による、間の11版が非表示)
60行目: 60行目:
 
<syntaxhighlight lang="bash">ip a</syntaxhighlight>
 
<syntaxhighlight lang="bash">ip a</syntaxhighlight>
 
以下のように表示されるかと思います。
 
以下のように表示されるかと思います。
<syntaxhighlight lang="text"></syntaxhighlight>
+
<syntaxhighlight lang="text">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</syntaxhighlight>
 +
 
 +
「enp0s8」が追加されたNICになります。
 +
 
 +
 
 +
次にVirtualBox側の、DHCPサービスの設定を見てみます。<br/>
 +
 
 +
 
 +
VirtualBoxのメニューから「ファイル→ホストネットワークマネージャー」をクリックします。<br/>
 +
[[ファイル:Nginx-008.png|400px]]<br/>
 +
すると、「ホストネットワークマネージャー」のウインドウが表示されます。
 +
 
 +
 
 +
下の様な画面が表示されるはずですが、「DHCPサーバー」タブが表示されていない場合は「プロパティ」をクリックしてください。<br/>
 +
「DHCPサーバー」のタブをクリックします。<br/>
 +
[[ファイル:Nginx-009.png|400px]]<br/>
 +
ウインドウ下半分にDHCPサーバーの情報が表示されます。
 +
 
 +
 
 +
「アドレス下限」と「アドレス上限」に注目してください。<br/>
 +
この範囲のアドレスが、DHCPサーバーにより自動で割り振られるIPアドレスになります。<br/>
 +
今回は固定IPアドレスにしたいので、この範囲外の任意のアドレスを選択します。<br/>
 +
(と言っても、「192.168.56.1」はホストのアドレスに設定されているのでNGですが…)<br/>
 +
[[ファイル:Nginx-010.png|400px]]<br/>
 +
 
 +
 
 +
今回は「192.168.56.11」に設定していきたいと思います。
 +
 
 +
 
 +
 
 +
設定するIPアドレスが決まったので、具体的に設定をしていきます。<br/>
 +
以下のコマンドでネットワーク定義ファイルを新規作成します。<br/>
 +
<syntaxhighlight lang="bash">nano /etc/systemd/network/enp0s8.network</syntaxhighlight>
 +
 
 +
内容は以下のとおりです。
 +
<syntaxhighlight lang="text">[Match]
 +
Name=enp0s8
 +
 
 +
[Network]
 +
Address=192.168.56.11/24</syntaxhighlight>
 +
 
 +
 
 +
ファイルを作成したら、以下のコマンドでサービスを再起動します。
 +
<syntaxhighlight lang="bash">systemctl restart systemd-networkd</syntaxhighlight>
 +
 
 +
 
 +
また、以下のコマンドで「enp0s8」に指定したIPアドレスが設定されていることを確認します。
 +
<syntaxhighlight lang="bash">ip a</syntaxhighlight>
 +
<syntaxhighlight lang="bash">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</syntaxhighlight>
 +
 
 +
=== Nginxの確認 ===
 +
やっと、Nginxが正常に起動しているかの確認です。<br/>
 +
ホストマシンのブラウザで以下のURLを参照します。
 +
<syntaxhighlight lang="bash">http://192.168.56.11</syntaxhighlight>
 +
 
 +
 
 +
以下の様な画面が表示されればOKです。<br/>
 +
[[ファイル:Nginx-011.png|400px]]
 +
 
 +
== 実行ユーザーの変更 ==
 +
Nginxを起動するユーザーを変更して、セキュリティの向上を図ります。<br/>
 +
まずは以下のコマンドで、ユーザーを追加します。
 +
<syntaxhighlight lang="bash">useradd -m [userid]</syntaxhighlight>
 +
一応、ユーザーディレクトリを作成していますが、不要であれば「-m」を削除して実行してください。
 +
 
 +
 
 +
次にNginxの設定ファイルを変更します。<br/>
 +
以下のコマンドで、設定ファイルを開きます。<br/>
 +
<syntaxhighlight lang="bash">nano /etc/nginx/nginx.conf</syntaxhighlight>
 +
 
 +
 
 +
一番最初の行を以下のように変更します。
 +
 
 +
 
 +
【変更前】
 +
<syntaxhighlight lang="text">#user html;</syntaxhighlight>
 +
 
 +
 
 +
【変更後】
 +
<syntaxhighlight lang="text">user [userid];</syntaxhighlight>
 +
 
 +
 
 +
変更したら以下のコマンドでnginxを再起動します。
 +
<syntaxhighlight lang="bash">systemctl restart nginx</syntaxhighlight>
 +
 
 +
== ルートディレクトリの変更 ==
 +
次にルートディレクトリの変更を行います。<br/>
 +
今回は仮に「/share/www」ディレクトリに変更すると仮定して、手順を挙げます。<br/>
 +
 
 +
 
 +
以下のコマンドを実行して、nginxの設定ファイルを開きます。
 +
<syntaxhighlight lang="bash">nano /etc/nginx/nginx.conf</syntaxhighlight>
 +
 
 +
 
 +
ファイル内のルートディレクトリの設定をしている個所を、以下のように修正します。
 +
 
 +
 
 +
【修正前】
 +
<syntaxhighlight lang="text" highlight="2">location / {
 +
    root  /usr/share/nginx/html;
 +
    index  index.html index.htm;
 +
}</syntaxhighlight>
 +
 
 +
 
 +
【修正後】
 +
<syntaxhighlight lang="text" highlight="2">location / {
 +
    root  /share/www;
 +
    index  index.html index.htm;
 +
}</syntaxhighlight>
 +
 
 +
 
 +
変更したら以下のコマンドでnginxを再起動します。
 +
<syntaxhighlight lang="bash">systemctl restart nginx</syntaxhighlight>
  
 
== 参考サイト ==
 
== 参考サイト ==
 
[https://wiki.archlinux.jp/index.php/Nginx nginx - ArchWiki]<br/>
 
[https://wiki.archlinux.jp/index.php/Nginx nginx - ArchWiki]<br/>
 +
 +
[[Category:ArchLinux]]
 +
[[Category:Nginx]]

2019年12月27日 (金) 11:23時点における最新版

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を選んだ状態で、「設定」ボタンをクリックします。
Nginx-001.png
「設定」画面が表示されます。


次に、左側の「ネットワーク」をクリックします。
Nginx-002.png
右側がネットワークの設定画面に切り替わります。


NICを追加したいので、「アダプター2」のタブをクリックします。
Nginx-003.png
二枚目のNICの設定をここでします。


二枚目のNICを有効にしたいので、「ネットワークアダプターを有効化」にチェックを入れます。
Nginx-004.png
一先ず、二枚目のNICが有効になります。


割り当てを「ホストオンリーアダプター」に変更します。
Nginx-005.png
これを選択することにより、なんというか…クロスケーブルでVMとPCを接続したような感じになります。


最後に「OK」ボタンをクリックします。
Nginx-006.png


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のメニューから「ファイル→ホストネットワークマネージャー」をクリックします。
Nginx-008.png
すると、「ホストネットワークマネージャー」のウインドウが表示されます。


下の様な画面が表示されるはずですが、「DHCPサーバー」タブが表示されていない場合は「プロパティ」をクリックしてください。
「DHCPサーバー」のタブをクリックします。
Nginx-009.png
ウインドウ下半分にDHCPサーバーの情報が表示されます。


「アドレス下限」と「アドレス上限」に注目してください。
この範囲のアドレスが、DHCPサーバーにより自動で割り振られるIPアドレスになります。
今回は固定IPアドレスにしたいので、この範囲外の任意のアドレスを選択します。
(と言っても、「192.168.56.1」はホストのアドレスに設定されているのでNGですが…)
Nginx-010.png


今回は「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


以下の様な画面が表示されればOKです。
Nginx-011.png

実行ユーザーの変更

Nginxを起動するユーザーを変更して、セキュリティの向上を図ります。
まずは以下のコマンドで、ユーザーを追加します。

useradd -m [userid]

一応、ユーザーディレクトリを作成していますが、不要であれば「-m」を削除して実行してください。


次にNginxの設定ファイルを変更します。
以下のコマンドで、設定ファイルを開きます。

nano /etc/nginx/nginx.conf


一番最初の行を以下のように変更します。


【変更前】

#user html;


【変更後】

user [userid];


変更したら以下のコマンドで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

参考サイト

nginx - ArchWiki