【问题标题】:Deploy angular 5 and rails on same ec2 server在同一 ec2 服务器上部署 angular 5 和 rails
【发布时间】:2018-05-09 18:26:36
【问题描述】:

我在 rails 5.2 中完成了服务器端编码,在 angular 5 中完成了客户端编码。对于 rails,我使用的是 puma sever。开发后,现在我希望同时部署两者 生产服务器(AWS ec2)中的(客户端和服务器代码)。在服务器中,我有 ngnix Web 服务器,我已经配置了两台服务器,一台用于 Angular 端口,另一台用于 81 端口的 Rails。

我已经生成了 Angular 项目的生产版本并保存在 ngnix 根路径中。

最初我使用了以下命令 RACK_ENV=生产包执行 但是服务器在几个小时后停止了。然后我使用 'rails s &' 来运行服务器。

现在我可以从浏览器访问该项目。但无法使用路径 (site_url/path_to_file) 加载上传到服务器的图像。 我在正确的轨道上吗?如果是这样,如何解决图片网址问题

【问题讨论】:

    标签: ruby-on-rails angular amazon-ec2


    【解决方案1】:

    我认为您以错误的方式部署它。您不会以这种方式为 Rails 应用程序提供服务,而是使用“rails s”运行它。通常您使用网络服务器(nginx、apache 等)和应用程序服务器(如 Phusion Passenger)。

    应用服务器运行 rails 应用程序(它可以运行几种其他类型的应用程序,如节点),网络服务器接收所有收入请求并重定向到应用程序服务器,该服务器处理请求将被传递到哪个应用程序。 Here 解释了如何设置它。

    如果你不想用Passenger,只想用Puma + Ngix,看看here。你必须使用 puma-manager。

    Angular 应用程序是一个“简单”的 html/css/js 应用程序。只有静态文件。所以可以这样送达。 看看官方文档,里面解释了如何builddeploy

    【讨论】:

    • 那么当我们请求一个 url 时,哪个会被调用 rias 或 angular?
    • 这取决于您将如何设置服务器块(apache 将其命名为“虚拟主机”)。看这里:digitalocean.com/community/tutorials/…
    • 您不需要为每个要服务的“站点”运行一个网络服务器。您应该只运行一个侦听端口 80 的网络服务器,并将(由服务器块)配置为处理多个 dns。
    猜你喜欢
    • 2019-10-01
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    相关资源
    最近更新 更多