unix domain socket 会比 tcp socket 快,而且节约端口,不过小应用来讲,快的可以忽略不计
unicorn 里的 listen 就是监听指定端口,127.0.0.1:3000 表示只监听本机的 3000 端口,所以会拒绝来自其他主机的请求
socket 文件是由 unicorn 创建,而不是你手动创建,也就是说运行 unicorn 的进程应当对/tmp 有写权限,777 不是一个好习惯,生产环境要谨慎 unicorn 抛出异常,则是 unicorn 配置的问题,与 nginx 无关
不同的 app 应该配置不同的 upstream,然后在 server 节设置 listen 不同的端口,不过这时候你就需要通过http://ip:port方式访问网站,或者绑定到不同的域名上 或者用 virtual host 方式,这个你 google "virtual host nginx"就是了,大概就是在 domain 设置上有点 trick 同时配合一下域名那边的 a record
nginx 与 unicorn 配合的大概的原理是:外部请求进来,nginx 会匹配,然后把请求转发给对应的 upstream,这里就是 unicorn,然后 unicorn 承载的 rails app 处理请求之后返回结果给请求者,nginx 只是作为一个中间人存在,这也就是为啥管他叫反向代理的原因
至于出现 something went wrong,你需要检查 app 的日志,看是什么异常
小技巧,nginx 的配置语法有误,启动或重启 nginx 时会提示,bad gateway 说明 upstream 配置有误或者 unicorn 未启动,sth went wrong 说明 rails 程序写疵了,unicorn 抛出异常说明 unicorn 配置有误 定位好错误源第一反应去查对应的日志,根据日志的信息才好做出正确的解决方案
关于 nginx 的配置可以参考我的https://github.com/jasl/a_rails_start_up_omakase/tree/master/lib/generators/conf/templates unicorn https://github.com/jasl/a_rails_start_up_omakase/blob/master/config/unicorn/production.rb
#9 楼 @siyang1982 避风塘现在还自助不?
eval %w(world' 'hello puts).reverse.join(' ')
1642 - -
#9 楼 @zj0713001 哈哈。。。这事我得记小本上不能忘,话说我已经大量应用 rake 和 generator 了 https://github.com/jasl/a_rails_start_up_omakase/tree/master/lib/generators/conf/templates 可以大幅度减少部署的时间
#7 楼 @zj0713001 对哦。。。settingslogic 也可以用在 initializer 的。。。不只是这个 secret_token,现在用 devise 的也很多,devise 的 salt 也是应该重新生成的
#5 楼 @zj0713001 既然是 initialize 就是把所有的配置都搞好啊,生成 token 啊,rename db.yml.sample 啊 之类的... secret_token.rb.sample 也是个好方法 呵呵
#3 楼 @zj0713001 其实我有个考虑是准备一个 initialize 的 rake task 来...
确实容易被忽略,我自己的项目要是开源的话,会自己创建一个私有的版本库,然后重新生成一个全新的 token...不过使用者不注意的话 倒是有可能产生安全问题,看来开源到 github 的时候要考虑这个问题...
#117 楼 @jjym @ChanceDoor 在♂一♂起!在♂一♂起!敲碗
#114 楼 @ChanceDoor 唔... @jjym 你怎么看?
#111 楼 @ChanceDoor 因为我在北京 - -
#22 楼 @ginchenorlee 开源跟免费是两码事啊,railscasts 上收费视频非常多,说实话 railscasts-china 的质量和覆盖面和 railscasts 比还有一些差距的。此外,商业 linux 发行版,前天还看到 sidekiq 出了 pro 版 500 刀一套呢,有太多例子反驳这种观点了
#20 楼 @ChanceDoor 做过教育或者经常在各个地方回答问题之后,就会发现,并不是这样的,人和人的差异很大,智力其实却是都差不多,心态导致了分层严重
个人看法就这样吧...毕竟别人好与不好跟自己一点关系都没有...
有些人根本不需要他人的帮助就能掌握,而有些人则需要他人的点拨和手把手指导,我的恩师曾对我说过:用金钱、时间、聪明都可以学会知识,至于怎么选,因人而异
@ChanceDoor :@daqing 的这个点子其实是经过市场验证的,他一直做教育市场的产品,我在他那里看到的数据可以说有点颠覆三观,而且人家也说了嘛,可以免费尝试一小时的。
@Sunnyroger : 交流是论坛的本质属性而已,你可以 at 某位大牛,但任何人都没有回应和完全讲懂的义务,ruby-china 上现在有不少无人回答的帖子,这有很多方面因素,但是有偿咨询则是有问必答而且还得包会,不满意还能给差评 - - 具体问什么、怎么利用这一个小时时间,这取决于花钱的啊。 另外有个问题:你愿意花 2000 上@knwang的课,却会对 100 一小时的咨询有微词呢?
说点个人的经历,我也是大学在校生,今年大四,大一接触编程,曾经跟随一个师哥学习,相处的时候我悟到一个道理:向比自己厉害的多的前辈提问简单问题是对前辈的不尊重,所以我强迫自己尽可能的记忆前辈讲出的大量陌生的术语,在私下的时间里一个个 google,能理解的理解,不能理解的记个印象。接触编程一个月后就和他一起用 CakePHP 做外包,那时候他接触了一周 PHP,我才接触了 3 天而已。回想那段时光,师哥其实什么都没教我,是我自己在模仿他、逼迫自己成为像他那样的高手,大二和师哥分道扬镳之后,我经常问自己是否已停滞不前。 两年前接触 Rails,学习的过程中自己去寻找合适的项目,抄袭、理解、融入到自己的玩具中、感受 Rails 的 style、推翻重写,如此反复了 3 次。 今天我已经以技术合伙人的身份创业半年,独立完成前端后端运维部署全部环节,同时也成为了 Rails 的 contributor,这期间虽然得到了很多前辈的指导和帮助,但主要还是依靠自己,这点我可以很不脸红的说出来。
没有谁是可怜的,也没有谁是有义务的,这里没有施舍,一切都是心态使然,要想卓越,心境必先卓越,我认为第一步就是 独立。
可能说这番话有点装逼了,看了上边的评论再加上深夜产生了很多感慨,不吐不快,得罪人望见谅。
关于 @daqing 他只是低调而已,能力看 github 就是了,我学 rails 第一个抄袭的项目正是他的 Blumine - -。大概在去年还是前年,他开发了商业论坛产品 rabel,然后组建了 google group 免费为新手解答问题,同时提供了 rabel 的全部源代码和有偿的练习。去年到今年春节前,北京的 ruby tuesday @daqing 一直在做免费的线下培训。
对于国内 Rails 布道来说 @yedingding @poshboytl @happypeter @daqing @knwang 都做出了巨大的贡献,令人尊敬。至于是否收费,作为新手这边同样也有选择权。
我喜欢把学习放在工作中,虽然会降低工作效率,但是免去了刻意练习的时间。
好(北京话 - -)