もともとphperで最近railsを触るようになったものです。
railsをnginx-unicornで
productionはロジックがメモリにキャッシュされるような構造(unicornを再起動しないとrb変更が反映されない)になっている感じがするので、
productionは処理が速いと思ったのですが、
初回アクセスが重いです。
一度ページにアクセスすると以後速くなります。
基本的にプロジェクトは新規作成からパフォーマンス周りは何もいじってません。
assetsファイルはコマンドで作成しています。
同じサーバーでzend1のfwを動かしているのですが、そちらはサクサクです。
railsのフレームワークはこんなもんなのでしょうか?
Rails 5.1.4
2017/11/13以下追加しました。
nginx設定
/etc/nginx/conf.d/sample.conf
upstream unicorn_sample_production { server unix:/var/www/rails/sample/tmp/unicorn.sock; } server { listen 80; server_name sample.xxxxx.net; root /var/www/rails/sample/public; access_log /var/log/nginx/ruby_sample_access.log; error_log /var/log/nginx/ruby_sample_error.log; client_max_body_size 100m; error_page 500 502 503 504 /500.html; try_files $uri/index.html $uri @unicorn_server; location @unicorn_server { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://unicorn_sample_production; } }
unicorn設定
config/unicorn.rb
rails_root = File.expand_path('../../', __FILE__) worker_processes 2 working_directory rails_root listen "#{rails_root}/tmp/unicorn.sock", :backlog => 64 pid "#{rails_root}/tmp/unicorn.pid" stderr_path "#{rails_root}/log/unicorn_error.log" stdout_path "#{rails_root}/log/unicorn.log" listen 8084
あなたの回答
tips
プレビュー