nginx + unicorn + capistrano 部署

原来部署的时候是用nginx + passenger,其实那个时候部署原理也不是很懂,就是照着那个教程来就给部署上去了。
以至于最开始连nginx 与 unicorn 的区别是什么都不知道,心想尼玛部署不是只要用个nginx就好了吗?怎么又跑出个unicorn来。
通过万能的google,nginx是一个http server而unicorn是一个app server,换句话说,就是我们的app是跑在unicorn上面的,而nginx是负责处理http请求的。
如下图:


好吧,知道了它的工作流程,下面说下配置文件的编写。好吧,我得承认原来nginx配置文件的时候也是照抄别人的,然后具体意思也不是很懂。。。。
先说下nginx配置文件

server {
  listen 80; 
  server_name wx.ejianfei.com;
  root /var/apps/wx/current/public;
  access_log logs/wx.access.log;
  error_log logs/wx.error.log;
  location /{
      proxy_pass http://127.0.0.1:3016;
  }
  error_page 500 502 503 504 /500.html;
}

这个基本上是一个最简单的虚拟主机的配置了,这里location / 是匹配任意的请求。
如果你这么写的话

location ~* \.(gif|jpg|png)

就是只会处理uri中以.gif, .jpg, .png的请求了。
请注意所有location匹配测试只使用请求的URI部分,而不使用参数部分。

接着是unicorn的配置

require 'unicorn'
app_root = File.expand_path("../..", __FILE__)
working_directory "#{app_root}"
pid "#{app_root}" + "/tmp/pids/unicorn.pid"
stderr_path "#{app_root}" + "/log/unicorn.log"
stdout_path "#{app_root}" + "/log/unicorn.log"
listen 3016, :tcp_nopush => false
worker_processes 2
timeout 30

listen 3016代表在nginx上server中开启的端口号

参考
nginx如何处理一个请求
在rails项目中集成nginx和unicorn

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,088评论 19 139
  • 第一章 Nginx简介 Nginx是什么 没有听过Nginx?那么一定听过它的“同行”Apache吧!Ngi...
    JokerW阅读 32,923评论 24 1,002
  • Nginx简介 解决基于进程模型产生的C10K问题,请求时即使无状态连接如web服务都无法达到并发响应量级一万的现...
    魏镇坪阅读 6,335评论 0 9
  • 1.简介:  Nginx:engine X ,2002年,开源,商业版 http协议:web服务器(类似于ht...
    尛尛大尹阅读 5,893评论 0 3
  • 他们说灯火阑珊很美,你却觉得暗角处发霉的地板更耐人寻味 他们说热闹唱出来的歌才会被人接纳,你却觉得只有自己的时候发...
    鬼小姐阅读 1,171评论 0 0

友情链接更多精彩内容