我对使用 Nginx 和 Thin 为我的 Rails 3.2 应用程序提供服务感到有些困惑。以前我让 Thin 在 Windows Server 2008 R2 上为我的 Rails 应用程序提供服务,没有任何问题。我会在生产服务器上启动 Thin,在端口 80 上指定服务器的 IP 地址,如下所示:
rails server thin -b 10.xx.x.xxx -p 80 -e production
现在,我正在尝试将 Nginx 添加到组合中,我对如何启动 Thin 以及如何配置 Nginx 以转发到 Thin 感到困惑。
例如,现在 Nginx 正在侦听端口 80,我应该在不同的端口上本地启动 Thin 吗?像 0.0.0.0:3000(或 127.0.0.1:3000)?还是我像以前在 10.xx.x.xxx:80 上一样开始 Thin?
在我的 Nginx conf 文件中,我是否将上游服务器指定为 localhost 或机器的 IP 地址?我不太确定它是干什么用的。
upstream mywebapp_thin {
server 0.0.0.0:3000;
}
server {
listen 80;
server_name mywebserver www.mywebserver;
# locations et. al. excluded for brevity...
我看到的大多数示例都有上游服务器在端口 3000 或 5000 上运行。我想知道这些示例是否真的用于开发设置,而不是用于生产?或者 Thin 需要在 80 以外的其他端口上运行,因为 Nginx 现在正在监听它?
我注意到我的 Web 应用程序不会响应基本 URL(mywebserver/projects),除非我添加运行 Thin 的端口(mywebserver:3000/projects)