rails6で作成したアプリをec2内のnginx,puma4.3で起動したいのですが、
ALB、ACMを使用したhttps化がうまくいっておりません。
puma導入時には正常にhttps通信が行えていたのですが、
数時間後にふとページを開こうとすると、ERR_CONNECTION_REFUSEDのページが表示されており、
pumaのログを見ると
HTTP parse error, malformed request (127.0.0.1): #<Puma::HttpParserError: Invalid HTTP format, parsing fails
と表示されていました。
色々と調べて試してみた結果、
手持ちのスマートフォン接続では正常にhttpsで接続されるのですが、
pcのChromeからだとERR_CONNECTION_REFUSEDとなる奇妙な環境になってしまいました。
Chromeのクッキー削除などもちろん試しているのですが、同様です。
おそらくnginxやALBの設定がうまくいっていないのかなと思うのですが、かなりの時間手詰まりなためアドバイスいただければ幸いです。
以下に設定を記述します。
他に必要な情報があれば追記いたします。
追記:手持ちのwindowsPCのchromeでアクセスした場合や遠方の知人がアクセスした場合も正常に表示されており、
開発環境で使用中のMacでのみchrome,firefox共に表示されません。
##/etc/nginx/nginx.conf
user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { server_names_hash_bucket_size 64; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. #include /etc/nginx/conf.d/*.conf; upstream puma { server unix:///var/www/rails/myapp/shared/tmp/sockets/puma.sock; } server { listen 80; server_name myapp.com; root /var/www/rails/myapp/current/public; # Load configuration files for the default server block. #include /etc/nginx/default.d/*.conf; try_files $uri $uri/index.html $uri.html @webapp; location @webapp { proxy_read_timeout 300; proxy_connect_timeout 300; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://puma; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
###config_force_ssl=true
###ALBリスナー
HTTP 80
HTTPS 443 証明書:ACMで取得した証明書
##curl結果追記
sudo curl -v https://ドメイン
EC2から確認→Trying (見覚えの無いIP)...
成功
Macから確認→Trying (インスタンスと紐づけられたEIP)...
connect to (インスタンスと紐づけられたEIP) port 443 failed: Connection refused
###dig結果追記
ec2
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.amzn2.0.2 <<>> https://myapp.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 59882 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;https://myapp.com. IN A ;; AUTHORITY SECTION: com. 60 IN SOA a.gtld-servers.net. nstld.verisign-grs.com. 1577639153 1800 900 604800 86400 ;; Query time: 111 msec ;; SERVER: 10.0.0.2#53(10.0.0.2) ;; WHEN: 月 12月 30 02:06:23 JST 2019 ;; MSG SIZE rcvd: 122
Mac
; <<>> DiG 9.10.6 <<>> https://myapp.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 17607 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;https://myapp.com. IN A ;; AUTHORITY SECTION: com. 900 IN SOA a.gtld-servers.net. nstld.verisign-grs.com. 1577639108 1800 900 604800 86400 ;; Query time: 757 msec ;; SERVER: s.s.s.1#53(192.168.11.1) ;; WHEN: Mon Dec 30 02:05:21 JST 2019 ;; MSG SIZE rcvd: 122
Macのdig結果のSERVERにある「s」部分は今使用しているMacのIPアドレスと一致しています
回答1件
あなたの回答
tips
プレビュー