nginxのインストール

ここでは、nginxをソースからインストールするのではなく、公式に配布されているプリコンパイルパッケージのリポジトリを利用してインストールする方法を説明します。

バージョンの選択

nginxにはStableとMainlineの2つのバージョンが存在し、yumリポジトリのURLも両者で分かれています。

通常は、新機能追加とバグフィックスが常時行われるMainlineバージョンを選択すればよいでしょう。

新機能は必要無く、APIの互換性を重視する場合は、Stableバージョンを選択することになるかと思います。プロダクションサーバにはStableバージョンが推奨されているようです。

NGINXのチュートリアル記事を引用しておきます。

Choosing Between a Stable or a Mainline Version

NGINX Open Source is available in two versions:

  • The mainline version. This version includes the latest features and bugfixes and is always up-to-date. It is reliable, but it may include some experimental modules, and it may also have some number of new bugs.
  • The stable version. This version doesn’t have new features, but includes critical bug fixes that are always backported to the mainline version. The stable version is recommended for production servers.

yumリポジトリの追加

nginxの公式リポジトリをyumに追加します。

Stableバージョンをインストールする場合

vi /etc/yum.repos.d/nginx.repo
--------------------------------------------------
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
--------------------------------------------------

Mainlineバージョンをインストールする場合

vi /etc/yum.repos.d/nginx.repo
--------------------------------------------------
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
--------------------------------------------------

nginxパッケージのインストール

yumでnginxパッケージをインストールします。

yum install nginx

nginxの起動

nginxを起動して、ホスト起動時にも自動で起動する設定を有効にします。

nginxをsystemctl経由で起動します。

systemctl start nginx

ホスト起動時のnginxの自動起動を有効にします。

systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

nginxデーモンの起動状態を確認します。

systemctl status nginx
● nginx.service - nginx - high performance web server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2017-03-05 02:51:27 UTC; 1h 6min ago
     Docs: http://nginx.org/en/docs/
 Main PID: 23058 (nginx)
   CGroup: /system.slice/nginx.service
           ├─23058 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
           └─23059 nginx: worker process

nginx.service; enabledの箇所で自動起動が有効になっており、active (running)の箇所でデーモンが起動していることが分かります。

ファイアウォールの設定

firewalldでファイアウォールを設定している場合は、外部からのhttpサービス (80番ポート) への通信を許可する必要があります。firewall-cmdコマンドでpublicゾーンにhttpサービスを永続的(permanent)に追加します。

firewall-cmd --add-service=http --zone=public --permanent
systemctl reload firewalld.service

iptablesコマンドでhttpが追加されていることを確認します。

iptables -L
(省略)
Chain IN_public_allow (1 references)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http ctstate NEW
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh ctstate NEW
(省略)

動作確認

curlコマンドでnginxへアクセスして簡単に動作確認してみます。可能であればブラウザでも確認してみるとよいでしょう。

# curl localhost
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>