LoginSignup
3
5

More than 5 years have passed since last update.

NginxでSSLとロードバランサーの設定

Posted at

はじめに

Ruby on Railsのフロントウェブサーバとしてnginxを使用するときのSSLとロードバランサー(upstream)の設定について記述します。

ブラウザ --https--> nginx --http--> Ruby on Rails(unicorn,pumaなど)

前提

OSはCentOS7を使用
SSL証明書はあらかじめ用意しておきます。

/etc/pki/tls/certs/server.crt
/etc/pki/tls/private/server.key

nginxのインストールはこちらを参考させていただきました。

CentOS7 に nginx導入

nginxのインストール

上記の参考のとおり、yumでインストールしました。

yum.repos.dの設定

$ sudo vi /etc/yum.repos.d/nginx.repo
...

インストール

$ sudo yum install nginx
...

インストールしたnginxのバージョンは
nginx.x86_64 1:1.15.10-1.el7_4.ngx
です。

nginxの起動と自動起動設定

systemctlで自動起動設定と起動します。

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

ここから本題

タイトルのとおり、SSLとロードバランサーの設定を行います。

$ sudo vi /etc/nginx/conf.d/ssl_lb.conf
---
upstream backend {
  server localhost:3000; #バックエンドプロセスは同じサーバ内で起動している前提、ポート3000
}

server {
  listen      443 ssl;
  server_name sample.co.jp;

  ssl_certificate     /etc/pki/tls/certs/server.crt;
  ssl_certificate_key /etc/pki/tls/private/server.key;

  root /path/to/root; #コンテンツのルートパスを設定

  location / {
    try_files $uri @backend;
  }

  location @backend {
    proxy_set_header Host              $http_host;
    proxy_set_header X-Real-IP         $remote_addr;
    proxy_set_header X-Forwarded-Host  $host;
    proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_pass http://backend;
  }

}

upstream

upstreamに振り分ける対象のサービスを記載します。(ロードバランサー)
複数記述することでロードバランスされます。
また、unix socket接続の記載も可能です。

server

ssl_certificate、ssl_certificate_keyにSSL証明書のファイルを指定します。
upstreamで設定したbackendは"location @backend"に設定します。

nginxの再起動

nginxを再起動することで上記の設定が反映されます。

$ sudo systemctl restart nginx
3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5