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と連携させてみる。