如何在一个Ruby on Rails项目中同时部署API和Web应用在同一域名下?
- 内容介绍
- 文章标签
- 相关推荐
本文共计315个文字,预计阅读时间需要2分钟。
我拥有一套Rails API和一个Web应用程序(使用Express)。它们是完全独立的。我想知道的是,我是否必须分别部署它们?如果这样操作,我该如何实现,以便我的API在mysite.com/api和mysite.com中的网络访问?
我有一个Rails API和一个Web应用程序(使用express),完全独立且彼此独立.我想知道的是,我是否必须单独部署它们?如果我这样做,我怎么能这样做,以便我的api在mysite.com/api和mysite.com/中的网络应用程序我已经看到很多项目都是这样做的,甚至将api和应用程序放在单独的回购中.
通常,您不会将此类Web应用程序直接暴露给客户端.而是使用代理服务器,将所有传入请求转发到节点或rails服务器.nginx是一个受欢迎的选择. beginners guide甚至包含了与您尝试做的非常相似的示例.
您可以通过类似于此的配置实现您想要的效果:
server { location /api/ { proxy_pass localhost:8000; } location / { proxy_pass localhost:3000; } }
这假设您的API在端口8000上本地运行,而您的快速应用程序在端口3000上运行.此外,这不是完整的配置文件 – 这需要加载或添加到http块.从发行版的默认配置开始.
当有多个位置条目时,nginx会选择最具体的位置条目.您甚至可以添加更多条目,例如提供静态内容.
本文共计315个文字,预计阅读时间需要2分钟。
我拥有一套Rails API和一个Web应用程序(使用Express)。它们是完全独立的。我想知道的是,我是否必须分别部署它们?如果这样操作,我该如何实现,以便我的API在mysite.com/api和mysite.com中的网络访问?
我有一个Rails API和一个Web应用程序(使用express),完全独立且彼此独立.我想知道的是,我是否必须单独部署它们?如果我这样做,我怎么能这样做,以便我的api在mysite.com/api和mysite.com/中的网络应用程序我已经看到很多项目都是这样做的,甚至将api和应用程序放在单独的回购中.
通常,您不会将此类Web应用程序直接暴露给客户端.而是使用代理服务器,将所有传入请求转发到节点或rails服务器.nginx是一个受欢迎的选择. beginners guide甚至包含了与您尝试做的非常相似的示例.
您可以通过类似于此的配置实现您想要的效果:
server { location /api/ { proxy_pass localhost:8000; } location / { proxy_pass localhost:3000; } }
这假设您的API在端口8000上本地运行,而您的快速应用程序在端口3000上运行.此外,这不是完整的配置文件 – 这需要加载或添加到http块.从发行版的默认配置开始.
当有多个位置条目时,nginx会选择最具体的位置条目.您甚至可以添加更多条目,例如提供静态内容.

