さくらのVPS

さくらVPS(CentOS7)にNginxをインストールする

railsでアプリを作っていくにあたって、railsは開発環境(development)、本番環境(production)で設定を分けているようで、今は開発環境でのwebサーバとして、デフォルトのpumaを使っているけど、本番環境は、pumaでない別のWebサーバを使用するのが一般的みたい。
なので、本番環境構築のために、さくらVPS(CentOS7)にNginxをインストールしてみる。

ちなみにnginxはエンジンエックスって呼ぶみたい。

nginxをインストールする

sudo yum install nginx でインストール実行。

sudo yum install nginx
ずらずらーと出てきて
・
・
================================================================================
Install  1 Package (+10 Dependent packages)

Total download size: 1.2 M
Installed size: 3.8 M
Is this ok [y/d/N]:y  ※yを入力してエンター
・
・
Complete!

Completeと出れば完了

nginxの起動

起動コマンド: sudo systemctl start nginx

# sudo systemctl start nginx
Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.

エラーが出た。
すでにnginxが使うポートを使っているプロセスがあるみたい。

Webサーバだから80番ポートを使っているものが何か調べてみる。

# lsof -i:80
COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
httpd   9670   root    3u  IPv4  81518      0t0  TCP *:http (LISTEN)
httpd   9671 apache    3u  IPv4  81518      0t0  TCP *:http (LISTEN)
httpd   9672 apache    3u  IPv4  81518      0t0  TCP *:http (LISTEN)
httpd   9673 apache    3u  IPv4  81518      0t0  TCP *:http (LISTEN)
httpd   9674 apache    3u  IPv4  81518      0t0  TCP *:http (LISTEN)
httpd   9675 apache    3u  IPv4  81518      0t0  TCP *:http (LISTEN)

apaheが入っていて、動いているみたい。。。。

apacheを止める

#sudo systemctl stop httpd.service

再度、nginxを起動してみる

# sudo systemctl start nginx

いけだー

80番ポートを確認

# lsof -i:80
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   9718  root    6u  IPv4  82466      0t0  TCP *:http (LISTEN)
nginx   9718  root    7u  IPv6  82467      0t0  TCP *:http (LISTEN)
nginx   9719 nginx    6u  IPv4  82466      0t0  TCP *:http (LISTEN)
nginx   9719 nginx    7u  IPv6  82467      0t0  TCP *:http (LISTEN)
nginx   9720 nginx    6u  IPv4  82466      0t0  TCP *:http (LISTEN)
nginx   9720 nginx    7u  IPv6  82467      0t0  TCP *:http (LISTEN)
[root@tk2-408-45411 ~]#

nginxが80番ポートで動いてた
これでまずはnginxをインストールできた。

nginxの自動起動の設定

自動起動の設定コマンド:systemctl enable 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 - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2018-08-16 15:28:23 JST; 18min ago
 Main PID: 9718 (nginx)
   CGroup: /system.slice/nginx.service
           |-9718 nginx: master process /usr/sbin/nginx
           |-9719 nginx: worker process
           `-9720 nginx: worker process
・
・

enabled、Active: active (running)になっていればOK。
ちなみにenabledのところが自動起動の設定がONになっているという意味。
Active: active (running)は今現在動いているという意味。

念のため、Apacheの状態確認

# systemctl status httpd
* httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since Thu 2018-08-16 15:27:47 JST; 19min ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 9670 (code=exited, status=0/SUCCESS)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
・
・
・

inactiveになっており、動いていないことがわかる。
だけど、自動起動がenabledになっている。

apacheの自動起動をオフする。

# systemctl disable httpd
Removed symlink /etc/systemd/system/multi-user.target.wants/httpd.service.

確認

# systemctl status httpd
* httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:httpd(8)
           man:apachectl(8)

自動起動がdisabledになった。

これでnginxがインストールできた!
次はnginxをpuma、railsと連携させてみる。

-さくらのVPS