お世話になっております。
下記問題について知見のある方がいらっしゃいましたらご教示お願いします。
#起きている問題
AWS環境でNginx+Unicorn+Rails
を実装し、EC2
にALB
を経由してアクセスしようとしているのですが、
ALB
のDNS 名
でアクセスするとNginx
のデフォルトページが表示されてしまいます。
デプロイしているRails
のアプリケーションを開くためにはどのようにすればよろしいでしょうか。
![
#確認したこと
nginxの構文を確認したところ、サーバー名の長さが上限を超えていました。(ALBのDNS名を設定しているため)
$ sudo nginx -t [sudo] ryouya のパスワード: nginx: [emerg] could not build server_names_hash, you should increase server_names_hash_bucket_size: 64 nginx: configuration file /etc/nginx/nginx.conf test failed
nginx設定ファイルに『server_names_hash_bucket_size 128;』を追記したいのですが、構文エラーになってしまいます。
#追記時のエラー_1 $ vi coffee_app.conf : server { listen 80; client_max_body_size 4G; server_name {ALBのDNS名}; keepalive_timeout 5; server_names_hash_bucket_size 128; #この一文を追記 : $ sudo nginx -t nginx: [emerg] "server_names_hash_bucket_size" directive is not allowed here in /etc/nginx/conf.d/coffee_app.conf:15 nginx: configuration file /etc/nginx/nginx.conf test failed #追記時のエラー_2 $ vi coffee_app.conf : http { server_names_hash_bucket_size 128; #この一文を追記 server { listen 80; client_max_body_size 4G; server_name {ALBのDNS名}; keepalive_timeout 5; : $ sudo nginx -t nginx: [emerg] "http" directive is not allowed here in /etc/nginx/conf.d/coffee_app.conf:10 nginx: configuration file /etc/nginx/nginx.conf test failed
上記、記述方法がわかる方がいらっしゃいましたら、ご教示お願いします。
#関連ファイル
####coffee_app.conf(nginx設定ファイル)
$ cat coffee_app.conf error_log /var/www/rails/coffee_app/log/nginx.error.log; access_log /var/www/rails/coffee_app/log/nginx.access.log; upstream unicorn_server { server unix:/var/www/rails/coffee_app/tmp/sockets/.unicorn.sock fail_timeout=0; } server { listen 80; client_max_body_size 4G; server_name {ALBのDNS名}; keepalive_timeout 5; # Location of our static files root /var/www/rails/coffee_app/public; location ~ ^/assets/ { root /var/www/rails/coffee_app/public; } location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; if (!-f $request_filename) { proxy_pass http://unicorn_server; break; } } error_page 500 502 503 504 /500.html; location = /500.html { root /var/www/rails/coffee_app/public; } location = /favicon.ico { log_not_found off; } }
####unicorn.conf.rb
$ vi unicorn.conf.rb stdout_path $std_log timeout $timeout listen $listen pid $pid # loading booster preload_app true # before starting processes before_fork do |server, worker| defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect! old_pid = "#{server.config[:pid]}.oldbin" if old_pid != server.pid begin Process.kill "QUIT", File.read(old_pid).to_i rescue Errno::ENOENT, Errno::ESRCH end end end # after finishing processes after_fork do |server, worker| defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection end
#環境
Rails 5.1.6
Ruby 2.5.1
Unicorn 5.4.1
Nginx 1.12.2
回答2件
あなたの回答
tips
プレビュー