現在AWS(amazon linux2)にRailsアプリをデプロイし、nginxの設定をしています。
ElasticIPを叩いてRailsアプリが動作しているのが確認できたので、
下記の2記事1セットで AWS + Rails + HTTPS に対応していそうな
- [Rails][Nginx][AWS] Let's EncryptをEC2上のRailsに入れてHttpsにする - Qiita
- Amazon Linux2とLet's EncryptでSSL対応サーバを0から爆速構築 - Qiita
を参考にしました。
しかし上記タイトルのエラーが発生したため、他のサイトを探しましたが、該当するような記事が見つからなかったため、
nginxの設定ファイルをどのように編集すればいいか全くわかりません(m_ m)
もしわかる方がいらっしゃればご教授いただきますようよろしくお願いいたします(m _m)
*結論(解決策)
上記の2 で実行、反映された状態で
/etc/nginx/conf.d/webapp.conf
内に
include /etc/letsencrypt/options-ssl-nginx.conf;
という行があり(追加され)、
/etc/nginx/conf.d/webapp.conf
のssl_protocols TLSv1 TLSv1.1 TLSv1.2;
/etc/letsencrypt/options-ssl-nginx.conf
の ssl_protocols TLSv1.2;
で重複が発生していたため warning
が発生していました。
/etc/nginx/conf.d/webapp.conf
のssl_protocols TLSv1 TLSv1.1 TLSv1.2;
の行をコメントアウト(もしくは)削除することでwarning
は発生しなくなりました。
経緯は回答の方にあります。
yu_1985さん、本当にありがとうございました!!
動作環境
Rails
- Ruby: 2.4.5
- Rails: 4.2.11.1
- nginx: 1.16.1
AWS
- Amazon linux2
- EC2、RDS(MySQL)
- Route53設定済
ドメイン
- freenom(Route53と紐付け済)
証明書
- Let'sEncrypt
期待する動作
nginxのエラーがなくなり、AWS上のRailsアプリが登録済ドメインでHTTPS規格で動作すること
エラー内容
- 下記の設定ファイルを保存し
sudo nginx -t
を実行した時[warn] duplicate value "TLSv1.2"
と警告が出る
(ファイルに同じ文字列は存在しない)
nginxのシンタックスチェック、再起動後のステータス確認結果
bash
1[username@ip-xxx-xxx-xxx-xxx ~]$ sudo nginx -t 2# nginx: [warn] duplicate value "TLSv1.2" in /etc/nginx/conf.d/webapp.conf:66 3# nginx: the configuration file /etc/nginx/nginx.conf syntax is ok 4# nginx: configuration file /etc/nginx/nginx.conf test is successful 5 6 7[username@ip-xxx-xxx-xxx-xxx ~]$ sudo service nginx restart 8# Redirecting to /bin/systemctl restart nginx.service 9 10 11[username@ip-xxx-xxx-xxx-xxx ~]$ sudo service nginx status 12# Redirecting to /bin/systemctl status nginx.service 13# ● nginx.service - The nginx HTTP and reverse proxy server 14# Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled) 15# Active: active (running) since 火 2019-10-15 23:08:09 JST; 4s ago 16# Process: 11316 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) 17# Process: 11313 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) 18# Process: 11311 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) 19# Main PID: 11319 (nginx) 20# CGroup: /system.slice/nginx.service 21# ├─11319 nginx: master process /usr/sbin/nginx 22# └─11320 nginx: worker process 23# 24# 10月 15 23:08:08 ip-xxx-xxx-xxx-xxx.ap-northeast-1.compute.internal systemd[1]: Starting The nginx HTTP and reverse proxy server... 25# 10月 15 23:08:08 ip-xxx-xxx-xxx-xxx.ap-northeast-1.compute.internal nginx[11313]: nginx: [warn] duplicate value "TLSv1.2" in /etc/nginx/conf.d/webapp.conf:66 26# 10月 15 23:08:08 ip-xxx-xxx-xxx-xxx.ap-northeast-1.compute.internal nginx[11313]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok 27# 10月 15 23:08:08 ip-xxx-xxx-xxx-xxx.ap-northeast-1.compute.internal nginx[11313]: nginx: configuration file /etc/nginx/nginx.conf test is successful 28# 10月 15 23:08:09 ip-xxx-xxx-xxx-xxx.ap-northeast-1.compute.internal nginx[11316]: nginx: [warn] duplicate value "TLSv1.2" in /etc/nginx/conf.d/webapp.conf:66 29# 10月 15 23:08:09 ip-xxx-xxx-xxx-xxx.ap-northeast-1.compute.internal systemd[1]: Started The nginx HTTP and reverse proxy server.
nginxの設定ファイル1(/etc/nginx/nginx.conf)
bash
1# For more information on configuration, see: 2# * Official English Documentation: http://nginx.org/en/docs/ 3# * Official Russian Documentation: http://nginx.org/ru/docs/ 4 5user nginx; 6worker_processes auto; 7error_log /var/log/nginx/error.log; 8pid /run/nginx.pid; 9 10# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic. 11include /usr/share/nginx/modules/*.conf; 12 13events { 14 worker_connections 1024; 15} 16 17http { 18 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 19 '$status $body_bytes_sent "$http_referer" ' 20 '"$http_user_agent" "$http_x_forwarded_for"'; 21 22 access_log /var/log/nginx/access.log main; 23 24 sendfile on; 25 tcp_nopush on; 26 tcp_nodelay on; 27 keepalive_timeout 65; 28 types_hash_max_size 2048; 29 30 include /etc/nginx/mime.types; 31 default_type application/octet-stream; 32 33 # Load modular configuration files from the /etc/nginx/conf.d directory. 34 # See http://nginx.org/en/docs/ngx_core_module.html#include 35 # for more information. 36 include /etc/nginx/conf.d/*.conf; 37 38 server { 39 listen 80 default_server; 40 listen [::]:80 default_server; 41 server_name _; 42 root /usr/share/nginx/html; 43 44 # Load configuration files for the default server block. 45 include /etc/nginx/default.d/*.conf; 46 47 location / { 48 } 49 50 error_page 404 /404.html; 51 location = /40x.html { 52 } 53 54 error_page 500 502 503 504 /50x.html; 55 location = /50x.html { 56 } 57 } 58 59# Settings for a TLS enabled server. 60# 61# server { 62# listen 443 ssl http2 default_server; 63# listen [::]:443 ssl http2 default_server; 64# server_name _; 65# root /usr/share/nginx/html; 66# 67# ssl_certificate "/etc/pki/nginx/server.crt"; 68# ssl_certificate_key "/etc/pki/nginx/private/server.key"; 69# ssl_session_cache shared:SSL:1m; 70# ssl_session_timeout 10m; 71# ssl_ciphers HIGH:!aNULL:!MD5; 72# ssl_prefer_server_ciphers on; 73# 74# # Load configuration files for the default server block. 75# include /etc/nginx/default.d/*.conf; 76# 77# location / { 78# } 79# 80# error_page 404 /404.html; 81# location = /40x.html { 82# } 83# 84# error_page 500 502 503 504 /50x.html; 85# location = /50x.html { 86# } 87# }
nginxの設定ファイル2(/etc/nginx/conf.d/webapp.conf)
bash
1```bash 2# /etc/nginx/conf.d/webapp.conf 3 4# log directory 5error_log /var/www/rails/webapp/log/nginx.error.log; 6access_log /var/www/rails/webapp/log/nginx.access.log; 7 8# max body size 9#client_max_body_size 2G; 10 11upstream app_server { 12 # for UNIX domain socket setups 13 server unix:/var/www/rails/webapp/tmp/sockets/.unicorn.sock fail_timeout=0; 14} 15 16server { 17 listen 443 ssl; 18 19 server_name domainName; 20 21 # 接続制限の設定(nginx so increasing this is generally safe..) 22 # 接続を保つ秒数 23 keepalive_timeout 5; 24 25 # クライアントからのリクエストボディは2Gまで許容 26 client_max_body_size 2G; 27 28 # path for static files 29 root /var/www/rails/webapp/public; 30 31 # page cache loading 32 try_files $uri/index.html $uri.html $uri @app; 33 34 location @app { 35 proxy_set_header X-Real-IP $remote_addr; 36 37 proxy_set_header X-Forwarded-Proto $scheme; 38 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 39 proxy_set_header Host $http_host; 40 } 41 42 # Railsエラーページ 43 error_page 500 502 503 504 /500.html; 44 45 location = /500.html { 46 root /var/www/rails/webapp/public; 47 } 48 49 50 51 52 # listen 443 ssl; # managed by Certbot 53 ssl_certificate /etc/letsencrypt/live/domainName/fullchain.pem; # managed by Certbot 54 ssl_certificate_key /etc/letsencrypt/live/domainName/privkey.pem; # managed by Certbot 55 include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot 56 ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot 57 58 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 59} 60 61server { 62 listen 80; 63 server_name domainName; 64 return 301 https://$host$request_uri; 65}
回答2件
あなたの回答
tips
プレビュー