nginx+unicorn+rails 配置文件
1、/etc/nginx/sites-available/default
# this can be any application server, not just Unicorn/Rainbows! upstream app_server { # for UNIX domain socket setups: server unix:<projects_app_path>/tmp/sockets/<name>.socket fail_timeout=0; # for TCP setups, point these to your backend servers # server 192.168.0.7:8080 fail_timeout=0; # server 192.168.0.8:8080 fail_timeout=0; # server 192.168.0.9:8080 fail_timeout=0; } server { # enable one of the following if you're on Linux or FreeBSD listen 80 default deferred; # for Linux listen [::]:80 ipv6only=on; # deferred or accept_filter recommended proxy_connect_timeout 60s; proxy_read_timeout 60s; client_max_body_size 4G; server_name _; # ~2 seconds is often enough for most folks to parse HTML/CSS and # retrieve needed images/icons/frames, connections are cheap in # nginx so increasing this is generally safe... keepalive_timeout 75; # path for static files root <projects_app_path>/public; # Prefer to serve static files directly from nginx to avoid unnecessary # data copies from the application server. # # try_files directive appeared in in nginx 0.7.27 and has stabilized # over time. Older versions of nginx (e.g. 0.6.x) requires # "if (!-f $request_filename)" which was less efficient: # http://bogomips.org/unicorn.git/tree/examples/nginx.conf?id=v3.3.1#n127 try_files $uri/index.html $uri.html $uri @app; location @app { # an HTTP header important enough to have its own Wikipedia entry: # http://en.wikipedia.org/wiki/X-Forwarded-For proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # pass the Host: header from the client right along so redirects # can be set properly within the Rack application proxy_set_header Host $http_host; # we don't want nginx trying to do something clever with # redirects, we set the Host: header above already. proxy_redirect off; # per-response basis. # proxy_buffering off; proxy_buffer_size 16k; proxy_busy_buffers_size 16k; proxy_pass http://app_server; } # Rails error pages error_page 500 502 503 504 /500.html; location = /500.html { root <projects_app_path>/public; } }
2、unicorn.sh
#!/bin/sh ### BEGIN INIT INFO # Provides: unicorn # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Manage unicorn server # Description: Start, stop, restart unicorn server for a specific application. ### END INIT INFO set -e # Feel free to change any of the following variables for your app: TIMEOUT=${TIMEOUT-60} APP_ROOT=<project_app_path> PID=$APP_ROOT/tmp/pids/unicorn.pid CMD="cd $APP_ROOT; bundle exec unicorn -D -c $APP_ROOT/config/unicorn.rb -E production" AS_USER=<ubuntu_user> set -u OLD_PIN="$PID.oldbin" sig () { test -s "$PID" && kill -$1 `cat $PID` } oldsig () { test -s $OLD_PIN && kill -$1 `cat $OLD_PIN` } run () { if [ "$(id -un)" = "$AS_USER" ]; then eval $1 else su -c "$1" - $AS_USER fi } case "$1" in start) sig 0 && echo >&2 "Already running" && exit 0 run "$CMD" ;; stop) sig QUIT && exit 0 echo >&2 "Not running" ;; force-stop) sig TERM && exit 0 echo >&2 "Not running" ;; restart|reload) sig HUP && echo reloaded OK && exit 0 echo >&2 "Couldn't reload, starting '$CMD' instead" run "$CMD" ;; upgrade) if sig USR2 && sleep 2 && sig 0 && oldsig QUIT then n=$TIMEOUT while test -s $OLD_PIN && test $n -ge 0 do printf '.' && sleep 1 && n=$(( $n - 1 )) done echo if test $n -lt 0 && test -s $OLD_PIN then echo >&2 "$OLD_PIN still exists after $TIMEOUT seconds" exit 1 fi exit 0 fi echo >&2 "Couldn't upgrade, starting '$CMD' instead" run "$CMD" ;; reopen-logs) sig USR1 ;; *) echo >&2 "Usage: $0 <start|stop|restart|upgrade|force-stop|reopen-logs>" exit 1 ;; esac
3、uncorn.rb
# assets 压缩
rake assets:precompile
相关推荐
docker-rails-nginx-unicorn Docker Rails + Nginx + Unicorn(来自Ubuntu 16.04和Ruby 2.4.0) 易于使用的docker导轨。 较少的配置,负担得起的生产。 包括什么 独角兽,nginx,领班 mysql,PostgreSQL库 用法 在...
这个包的目的是用于提供一个本地 vagrant 环境,该环境将运行 Nginx + Unicorn 并支持带有 postgres 的 rails 应用程序。 您可以使用 puppet 目录中的 config.yml 文件修改其中的许多设置。 此存
capistrano-nginx-unicorn, 从 Capistrano 创建和管理nginx unicorn配置 Capistrano-Nginx-Unicorn用于配置和管理nginx unicorn的Capistrano 任务 Rails 应用程序的零停机部署的组合。将 Capistrano 任务提供给:...
总结来说,这个压缩包提供了一套完整的Nginx 1.17.9.1与Unicorn在Windows上的部署解决方案,包括服务器二进制文件、配置示例、性能优化建议以及必要的文档和依赖库。对于开发者或运维人员来说,这是一份非常实用的...
在本文中,我们将深入探讨如何在Linux系统上配置一套高性能的Web开发环境,即Nginx、Ruby on Rails和MySQL的集成。这个配置方案被广泛推荐,特别是对于需要高效能和稳定性的Web应用。 首先,我们来安装RVM(Ruby ...
标题中的“利用Unicorn和Nginx部署Redmine”指的是在服务器上安装并配置Redmine项目管理工具,通过Unicorn作为应用服务器,Nginx作为反向代理和负载均衡器,来提供高效、稳定的服务。这是一个常见的Web应用程序部署...
这包括安装Ruby环境(如RVM或rbenv),管理Gemfile中的依赖(通过Bundler),设置数据库配置,并确保所有必要的服务(如Nginx和Rails应用服务器Puma或Unicorn)都已安装和配置。 4. **Nginx配置**: 文件 "nginxx_...
在构建高性能、高可用性的Web应用环境中,"基于Ubuntu Nginx Mongrel Mysql部署rails monit-5.0"的方案是一个常见的选择。这个方案结合了多种强大的工具和技术,以确保应用程序的稳定运行和高效管理。以下是这些关键...
TheRails部署......Applications > Ruby on Rails on Ubuntu 14.04 (Nginx + Unicorn)查看你的邮件 Your new droplet has been created!You can access it using the following credentials:IP Addres
本页描述了 Nginx 与 Rails(通过 Unicorn)的配置(示例)。 nginx /etc/nginx/nginx.conf worker_processes 8 ; user nobody nobody; events { worker_connections 4096 ; accept_mutex on ; use epoll ; } ...
使用Ansible(1.8)使用Rails 4.1.6,Nginx,Unicorn和PostgreSQL构建单个框。 您可以在同一盒子上部署多个Rails应用程序。 此外,该项目可以创建不同的阶段: 流浪汉的发展 在EC2上测试) 在EC2上暂存(需要使用...
您可能需要按照以下步骤将 ruby on rails 应用程序部署到 Ubuntu + Nginx + Unicorn 环境。 在这里,我将 RVM 安装为多用户模式。 我使用www-data用户来运行我的应用程序(这是 Ubuntu 上 Apache 和 Nginx 的...
rails_stack 食谱 TODO:在此处输入食谱说明。 例如,这本食谱使您最喜欢的早餐三明治。 要求 TODO:列出您的食谱要求。 确保包含本说明书对平台、库、其他说明书、软件包、操作系统等的任何要求。 例如 包裹 ...
9. **Deployment**: 最后,书中还会介绍如何将开发完成的应用部署到生产环境,包括使用Capistrano进行自动化部署、配置服务器环境以及使用Nginx和Unicorn等服务器软件。 通过阅读《敏捷Web开发与Rails:程序指南 第...
在部署方面,Rails应用通常运行在如Passenger、Unicorn或Puma这样的服务器上,配合Nginx或Apache作为反向代理。Heroku、DigitalOcean和AWS等云平台为Rails应用提供了便捷的部署选项。 总的来说,Ruby on Rails实践...
5. **Web服务器**:Rails提供了内置的Webrick服务器用于开发,但在生产环境中,推荐使用如Puma、Unicorn或Nginx+Passenger等高性能服务器。 6. **开发工具**:如TextMate、Sublime Text、VS Code或Atom等文本编辑器...
10. **部署和运维**:如何将Rails应用部署到服务器,如使用Capistrano自动化部署,以及理解Nginx、Unicorn或Puma等Web服务器的工作原理。 11. **版本控制**:Git是Rails开发的标准版本控制系统,学习Git的基本操作...