updated on 2019-07-28
Amazon Linux 2
Rails 5.2.1
ruby 2.4.2
nginx 1.12.2
unicorn 5.5.1
https://www.dragonarrow.work/articles/163 こちらの記事通り、wwwでアクセスできるようにした状態からのスタートとする。
下記の通り、1~4を行い、Aレコードでメインドメインが追加できたことを確認する。
nginx設定ファイルにて、メインドメインでアクセスしたら、wwwのurlにリダイレクトするように指定する。
ちなみに、筆者のアプリ名はfroala-blog、設定ファイルは /etc/nginx/conf.d/froala-blog.conf だが、人によって名前やパスは違うはず
便宜読み換える。
# log directory error_log /var/www/rails/froala-blog/log/nginx.error.log; access_log /var/www/rails/froala-blog/log/nginx.access.log; # max body size client_max_body_size 2G; upstream app_server { # for UNIX domain socket setups server unix:/var/www/rails/froala-blog/tmp/sockets/unicorn.sock fail_timeout=0; } server { charset utf-8; server_name www.example.com [My_Elastic_IP] example.com; # example.com(メインドメイン)を追加 # nginx so increasing this is generally safe... keepalive_timeout 5; # path for static files root /var/www/rails/froala-blog/public; # page cache loading try_files $uri/index.html $uri.html $uri @app; location @app { # HTTP headers proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://app_server; } # Rails error pages error_page 500 502 503 504 /500.html; location = /500.html { root /var/www/rails/froala-blog/public; } listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { if ($host = www.example.com) { return 301 https://$host$request_uri; } # managed by Certbot # example.com(メインドメイン)でアクセスしたらwwwつきurlに返す if ($host = example.com) { return 301 https://www.$host$request_uri; } # managed by Certbot listen 80; server_name www.example.com [My_Elastic_IP] example.com; # httpでのメインドメインのアクセスを許さない return 404; # managed by Certbot }
unicorn停止
sudo kill -QUIT `cat /var/www/rails/froala-blog/tmp/pids/unicorn.pid`
unicorn起動
bundle exec unicorn_rails -c /var/www/rails/froala-blog/config/unicorn.conf.rb -D -E production
nginx再起動
sudo service nginx restart
http://example.com, https://examole.com にアクセスすると、https://www.exaple.com でアクセスするようになる。
Thay's all for now!!