前提・実現したいこと
https通信でブラウザにアプリを表示させたいです。
現状https通信をするとnginxのテストページが表示されてしまいます。http通信の時はアプリが表示されます。
nginxの設定ファイルにunicornと連携する記述をしているはずなのですが、一向にブラウザでnginxの画面しか表示されず困っています。
該当のソースコード
config/unicorn.rb
app_path = File.expand_path('../../', __FILE__) worker_processes 1 working_directory app_path pid "#{app_path}/tmp/pids/unicorn.pid" listen "#{app_path}/tmp/sockets/unicorn.sock" stderr_path "#{app_path}/log/unicorn.stderr.log" stdout_path "#{app_path}/log/unicorn.stdout.log" timeout 60 preload_app true GC.respond_to?(:copy_on_write_friendly=) && GC.copy_on_write_friendly = true check_client_connection false run_once = true before_fork do |server, worker| defined?(ActiveRecord::Base) && ActiveRecord::Base.connection.disconnect! if run_once run_once = false # prevent from firing again end old_pid = "#{server.config[:pid]}.oldbin" if File.exist?(old_pid) && server.pid != old_pid begin sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU Process.kill(sig, File.read(old_pid).to_i) rescue Errno::ENOENT, Errno::ESRCH => e logger.error e end end end after_fork do |_server, _worker| defined?(ActiveRecord::Base) && ActiveRecord::Base.establish_connection end
etc/nginx/conf.d/rails.conf
server { listen 80; server_name stockapp.work; client_max_body_size 2g; root /var/www/stock-info/public; location ^~ /assets/ { gzip_static on; expires max; add_header Cache-Control public; } try_files $uri/index.html $uri @unicorn; location @unicorn { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://app_server; } error_page 500 502 503 504 /500.html; } server { listen 443 ssl; server_name stockapp.work; # root /var/www/stock-info/public; # ssl_certificate /etc/nginx/ssl/stock.crt; # ssl_certificate_key /etc/nginx/ssl/stock.pem; # ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; # location / { root /var/www/stock-info/public; # index index.html index.htm; } location ^~ /assets/ { gzip_static on; expires max; add_header Cache-Control public; } try_files $uri/index.html $uri @unicorn; location @unicorn { proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://app_server; } error_page 500 502 503 504 /500.html; }
試したこと
https://github.com/defunkt/unicorn/blob/master/examples/nginx.conf
元々うまくいっていたunicornと連携する記述をhttps通信の記述の場所にコピーしました。
また、上記のソースコードでは、https通信をする際はproxy_set_header X-Forwarded-Proto $scheme;という記述をする必要があるとあったので追記してみましたが、変化はありませんでした。
https通信をするにあたって、unicornの設定ファイルのどこかを変更したり、nginxのhttps設定の記述をどこか変更しなければならないのでしょうか...?
お詳しい方がいらっしゃいましたらご教授ください。
補足情報(FW/ツールのバージョンなど)
unicorn v5.8.0
nginx/1.18.0
ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux]
Rails 6.0.3.5
OS:Amazon Linux2
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/05 09:22