是否可以在同一个域上运行 Rails 应用程序和 React 应用程序?
Posted
技术标签:
【中文标题】是否可以在同一个域上运行 Rails 应用程序和 React 应用程序?【英文标题】:Is it possible to run a Rails app and React app on the same domain? 【发布时间】:2017-05-30 17:53:01 【问题描述】:我有一个场景,我想建立一个用作 CMS 和社交网络的网站。一直以来,我只会将 Rails 用作我的 API 提供者。我原本打算用 Redux 完全在 React 中做客户端,但随着构建的增长,我发现自己为最简单的任务编写了大量的样板文件(CMS 方面)。
与其进行构建,我认为最好使用 Rails 构建 CMS,因为您可以直接使用基于 CRUD 的工具。此时,我将在同一个 Rails 应用程序中拥有 API 和 CMS。
撰写帖子、创建集合等的社交网络方面仍将使用 React 完成。我想知道是否有可能实现我可以在同一域下分别制作 Rails 应用程序和 SPA 的场景。任何资源将不胜感激。
注意:我知道有一个用于 Rails 的 React gem,但我宁愿将它作为一个独立的模块使用,以利用 Redux 和其他 Node 包。
【问题讨论】:
【参考方案1】:考虑使用像 nginx 这样的反向代理。 Nginx 允许您将不同的路径映射到不同的主机或同一主机(具有不同的端口)
location /cms/
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://192.168.1.2:3000;
location /social/
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://192.168.1.2:3100;
您可以在以下网址找到更多信息
https://www.nginx.com/resources/admin-guide/reverse-proxy/
【讨论】:
这是最好的解决方案。使用 NGINX 时,您可以在不同的环境和端口上运行许多应用程序,并且通过反向代理,您可以将传入流量重定向到正确的应用程序。以上是关于是否可以在同一个域上运行 Rails 应用程序和 React 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
当 Rails 中的同一域上存在会话时,如何在 PHP 中创建会话?
我可以在两个域上拥有两个相同的网站,最好从同一个 Wordpress 运行吗?