Rails 关于本地同时运行多个Rails App的开发环境的问题

ibachue · 发布于 2012年10月16日 · 最后由 iBachue 回复于 2013年09月17日 · 4664 次阅读
172

大家好, 由于工作原因,经常需要本地同时运行多个Rails App开发环境,并且希望这些环境都运行在默认的端口上,能不能在本地开发环境上实现类似于Apache或Nginx根据domain name判断要访问的Rails App的功能?谢谢!

共收到 24 条回复
250

本地装Nginx,添加hosts

136

请用RVM+Pow 支持同时多版本Rails 使用http://app_name.dev/访问

250

#2楼 @southwolf 刚试了下,感觉不错,只是有方便的什么方式看log么?

262

#3楼 @miclle tail -f log/development.log

1085

#3楼 @miclle 命令行下:tail -f log/development.log

1085

#6楼 @miclle http://pow.cx/manual#section_4 这里有介绍了几个好用的第三方插件,你可以试一下。

136

tail -f log/development.log 这么说会被砍死么- -#

136

@geekontheway @zzhattzzh 果然大家的答案都一样啊……

172

哦 谢谢楼上诸位们

172

#2楼 @southwolf 能不能不带后缀呢??否则还是有问题的。。

136

#11楼 @iBachue 不带后缀是啥意思……http://sample/这样? .dev不行么?

172

#12楼 @southwolf 真的不行啊 我们的项目会判断域名然后产生行为的 不能乱用。。

136

#13楼 @iBachue 好诡异 那就还是自己架一个nginx吧= =#

172

#14楼 @southwolf 这样就不能做debug了吧。。

96

我是用的 railscasts 给的方案:http://railscasts.com/episodes/122-passenger-in-development 用的是 passenger + apache 不过他是在 mac 做开发的,我用 ubuntu,所以过程是这样的 http://happycasts.net/episodes/18

现在发现这个方案很好啊,即使是用 nginx + unicorn + capistrano 的项目,拿到本地开发环境,也可以不改配置直接跑,虽然我本地跑的是 passenger。而当初我试着在开发环境下用服务器上的 nginx + unicorn 反而要改配置的地方很多。

172

#16楼 @happypeter 啊 这个不错 我是Mac下开发的 谢谢!

172

#16楼 @happypeter 不过我有个问题 它使用该防火墙routes的办法实现的么?因为我看到它的规则似乎比/etc/hosts还要优先。

96

#18楼 @iBachue 我也不太清楚啊

172

#19楼 @happypeter 喝 我刚才成功实现了 直接用Nginx做反向代理即可 一点也不麻烦

172

#21楼 @happypeter 谢谢 我现在在研究如何让连接尽可能不超时 因为调试有时候可能需要比较久的时间

1780

1楼 @miclle @iBachue 挖了个坟,不好意思,我使用源码安装了最新的nginx,只是对如何使用nginx让本地运行多个rails app感到有点疑惑。我的意思是每次运行rails s的时候它默认使用3000这个端口,如果我们不改端口号的话(我不知道怎么改rails启动的端口号=。=|||),是需要为它们各自创建一个virtual host对吗,这个host就是配置文件中的server_name对么?

我在Mac中安装的nginx,它的配置文件是/usr/local/conf/nginx.conf还有一个/usr/local/conf/nginx.conf.default,这2个文件的内容一样,而且都无法编辑,是readonly的,我该怎么去配置nginx的多个host呢?

看了@iBachue的blog,地址:http://bachue.is-programmer.com/posts/35984.html 里面谈到的那个/etc/nginx/sites-available没找到这个目录。我看到他是配置了多个端口,应该是想把不同的端口号绑定到不同的域名上面去,和我这里的需求应该是不一样的。但是你的题目中说的本地同时运行多个rails app同时监听某个端口(80或3000)确实是我想要的,不知道Blog中那个部分是解决标题中的问题的。

求教,谢谢!

配置文件如下:

172

挖了个坟,不好意思,我使用源码安装了最新的nginx,只是对如何使用nginx让本地运行多个rails app感到有点疑惑。我的意思是每次运行rails s的时候它默认使用3000这个端口,如果我们不改端口号的话(我不知道怎么改rails启动的端口号=。=|||),是需要为它们各自创建一个virtual host对吗,这个host就是配置文件中的server_name对么?

滴汗。。 rails s -p xxxx 要启动多个Rails Server,必须启动多个服务器并绑定不同的端口,这点是毫无疑问的,不同应用无法监听同一个端口。

我在Mac中安装的nginx,它的配置文件是/usr/local/conf/nginx.conf还有一个/usr/local/conf/nginx.conf.default,这2个文件的内容一样,而且都无法编辑,是readonly的,我该怎么去配置nginx的多个host呢?

你最好先补习下Linux操作,连权限问题都无法解决后面你没法混了。。

里面谈到的那个/etc/nginx/sites-available没找到这个目录。

这个路径是针对Ubuntu的,Mac下可能有它自己的路径吧,我不知道。

还有,你也要好好学习Nginx的使用,否则就算你抄了我配置文件里的内容其实也没什么用。我这个东西之所以后来没用上是因为涉及到的坑太多了,你如果不花点心思去玩的话肯定玩不起来。如果不想花什么多心思的话你还是趁早放弃得了,像我就懒得给自己挖更多的坑了。。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册