Advertisement
Guest User

Nginx & Puma

a guest
Mar 29th, 2020
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.70 KB | None | 0 0
  1. /etc/nginx/sites_available/mydomain.com
  2.  
  3. upstream app {
  4. server unix:/home/deploy/opt/app/shared/sockets/puma.app.sock;
  5. }
  6.  
  7. server {
  8. listen 80;
  9. server_name mydomain.com;
  10. root /home/deploy/opt/app/public;
  11.  
  12. location / {
  13. try_files $uri @puma;
  14. }
  15.  
  16. location @puma {
  17. include proxy_params;
  18.  
  19. proxy_pass http://app;
  20. }
  21. }
  22.  
  23.  
  24.  
  25.  
  26. /etc/systemd/system/puma-app.service
  27.  
  28. [Unit]
  29. Description=Puma HTTP Server
  30. After=network.target
  31.  
  32. [Service]
  33. # Foreground process (do not use --daemon in ExecStart or config.rb)
  34. Type=simple
  35.  
  36. # Preferably configure a non-privileged user
  37. User=deploy
  38. Group=sudo
  39.  
  40. # Specify the path to your puma application root
  41. WorkingDirectory=/home/deploy/opt/app
  42.  
  43. # Helpful for debugging socket activation, etc.
  44. Environment=DEBUG=1
  45. EnvironmentFile=/home/deploy/opt/app/.env
  46.  
  47. # The command to start Puma
  48. ExecStart=/home/deploy/.rbenv/shims/bundle exec puma -C /home/deploy/opt/app/config/puma.rb
  49.  
  50. TimeoutSec = 15
  51. Restart=always
  52.  
  53. [Install]
  54. WantedBy=multi-user.target
  55.  
  56.  
  57.  
  58.  
  59. /home/deploy/opt/app/config/puma.rb
  60. # Change to match your CPU core count
  61. workers ENV.fetch("PUMA_WORKERS") { 1 }
  62.  
  63. # Min and Max threads per worker
  64. threads ENV.fetch("PUMA_MIN_THREADS") { 1 }, ENV.fetch("PUMA_MAX_THREADS") { 10 }
  65.  
  66. app_dir = File.expand_path("../..", __FILE__)
  67. shared_dir = "#{app_dir}/shared"
  68.  
  69. # Set up socket location
  70. bind "unix://#{shared_dir}/sockets/puma.app.sock"
  71.  
  72. # Redirect STDOUT to log files
  73. stdout_redirect "#{app_dir}/log/puma.stdout.log", "#{app_dir}/log/puma.stderr.log", true
  74.  
  75. # Set master PID and state locations
  76. pidfile "#{shared_dir}/pids/puma.app.pid"
  77. state_path "#{shared_dir}/pids/puma.app.state"
  78. rackup app_dir
  79.  
  80. activate_control_app
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement