使用 capistrano+nginx 在单个数字海洋 Droplet 中部署多个 Rails 应用程序

2024-02-20

我有一个在 IP xxx.xxx.xxx.xx 的数字海洋服务器上运行的 Rails 应用程序。使用 Capistrano 部署现在很容易运行。现在我正在考虑使用 capistrano 将另一个应用程序部署到同一服务器,经过多次尝试研究我没有得到任何适当的解决方案来解决我的疑问,或者找不到任何最好的教程。

将第二个应用程序部署到服务器之前需要注意哪些基本步骤?

第二个应用程序应该监听哪个 nginx 端口,默认为 80,第一个应用程序已经在监听该端口。

如果部署到同一个 Droplet,现在我可以使用 IP 访问第一个应用程序,如何访问第二个应用程序。?


对于每个应用程序,您需要确保您使用的任何服务器正在侦听不同的套接字。

之后,您必须在 Nginx 配置中添加另一个服务器块,如下所示,

upstream app_one {
    # Path to server1 SOCK file
}

upstream app_two {
    # Path to server2 SOCK file
}

server {
    listen 80;
    server_name IP;

    # Application root, as defined previously
    root /root/app_one/public;

    try_files $uri/index.html $uri @app;

    location @app {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://app_one;
    }

    error_page 500 502 503 504 /500.html;
    client_max_body_size 4G;
    keepalive_timeout 10;
} 

server {
    listen 8080;
    server_name IP;

    # Application root, as defined previously
    root /root/app_two/public;

    try_files $uri/index.html $uri @app;

    location @app {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://app_two;
    }

    error_page 500 502 503 504 /500.html;
    client_max_body_size 4G;
    keepalive_timeout 10;
}  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 capistrano+nginx 在单个数字海洋 Droplet 中部署多个 Rails 应用程序 的相关文章

随机推荐

  • 使用 Seaborn 和 Matplotlib 对齐热图和线图的共享子图中的 x 轴刻度

    绘制一个热图和线图使用具有共享 x 轴的 Seaborn 热图的刻度被放置在热图条的中间 因此 底部线图将继承热图刻度位置和标签 而不反映真实数据 因为线图刻度应从零开始 换句话说 我需要将两个图的刻度移动到从 x 轴原点开始 最佳 或者将
  • 在子进程中使用信号

    我想创建一个简单的程序 它使用 fork 并创建一个子进程 该子进程使用暂停正在等待 我希望这个子进程在从父进程收到特定信号后启动 我写的代码 include
  • 从第三方网站 POST 后丢失会话数据

    我有一个 Laravel 网站 它重定向到支付提供商 外部第三方网站 当用户完成付款后 他们会通过 POST 请求重定向回我的网站 我遇到的问题是 当用户返回确认页面时 他们的会话会丢失 我想知道这是否是 PHP 的普遍行为 但它似乎是 L
  • Android Studio 3 中的“活动管理器状态”在哪里?

    Android studio 2 x 中有一个非常方便的调试功能 但目前 3 x 中没有 它有点隐藏在用户界面中 然后它会提示详细的活动管理器状态 我知道 我可以通过以下方式获取该输出adb shell dumpsys activity t
  • Google Data Studio:如何计算特定事件的数量

    我知道以前有人问过类似的问题 但我没有找到答案 例子在这里 https support google com datastudio thread 22779471 hl en 另一个例子 https stackoverflow com qu
  • 在 Ubuntu 16.04 上安装 Oracle Datamodeler

    我正在我的 Ubuntu 16 04 工作站上设置 Oracle 开发环境 安装 Oracle 12c 是一个挑战 但有几个非常有用的教程让我走上了正轨 下列的迪兹韦尔的 https www dizwell com wordpress te
  • 从 Outlook 获取收件箱

    我在 Outlook 2010 中配置了两个 Exchange 帐户 但是我无法找到如何访问第二个帐户的收件箱 Session GetDefaultFolder 总是返回第一个 甚至枚举 Session Accounts 找到正确的帐户并调
  • for 循环缺少初始化

    我见过 for and for s 0 s 怎么就这样空白了 谢谢 The for声明的工作原理如下 for initialization test condition update 这三个中的任何一个或全部都可以省略 留空 所以 for
  • Eclipse源代码下载[已关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 在新的 Eclipse 中 我们具有右键单击 XSD 并从中生成 XML 的功能 有人可以指导我在哪里可以获得 Eclipse 此功能的源代码吗 我猜
  • 如何动态更改按钮模板WPF

    我怎样才能改变一个Button模板动态 我有一个ComboBox通过更改他选择的值 我想更改Button Template 这就是我一直在努力做的事情
  • Reactjs - 在悬停时渲染从数组渲染的列表项的单个图标

    我有这种从对象数组渲染的卡片 父组件 foo bar baz name string path string state isHovering false handleMouseHover gt const isHovering this
  • 调用 new 和 getInstance() 之间的区别

    正在呼叫Class getInstance 相当于new Class 我知道后者调用了构造函数 但是呢getInstance 谢谢 没有这样的方法Class getInstance 你可能把它与Class newInstance http
  • 将一串数字转换为十六进制并返回十进制 pandas python

    我目前有一串值 是在过滤 csv 文件中的数据后检索到的 最终我必须对数据进行一些过滤 但我有与列表 数据帧或数组相同的数字 我只需要获取字符串中的数字并将它们转换为十六进制 然后获取十六进制的前 8 个数字并将其转换为字符串中每个元素的十
  • 如何在多个存储过程上使用事务?

    您能否在一个存储过程中启动一项事务 然后在嵌套过程中回滚或提交它 提交和回滚有不同的效果 COMMIT 递减 TRANCOUNT ROLLBACK 将其推回到零 发生这种情况是因为 SQL Server 并不真正支持嵌套事务 如果您在嵌套存
  • Angular 6 延迟加载路线

    我想在我的项目中为管理员添加延迟加载路由 我使用 ASP Net Core 后端和 Angular 6 前端 因此我的编译代码输出目录是 wwwRoot Angular dist 当我编译项目时 我看到那里存在文件 admin admin
  • 为什么文件范围静态变量必须为零初始化?

    C 默认初始化不会将具有自动存储的变量清零 为什么要对静态存储变量进行特殊处理 C 和 C 定义的东西必须兼容吗 如果是这种情况 为什么 C 决定进行零初始化 如果文件范围静态变量提供了初始化程序 它们将首先被零初始化 然后再次被常量 动态
  • 当许多键具有相同的哈希码时,Java 8 的 HashMap 如何退化为平衡树?

    当许多键具有相同的哈希码时 Java 8 的 HashMap 如何退化为平衡树 我读到密钥应该实现Comparable定义排序 HashMap如何结合散列和自然排序来实现树 没有实现的类怎么办Comparable 或者当多个 不可相互比较时
  • 如何快速绘制数千个圆圈?

    我正在尝试绘制几个 数千个 圆形对象 我没有太多使用 python 的经验 我有兴趣指定位置 半径和颜色 有没有更有效的方法来达到相同的结果 import matplotlib pyplot as plt xvals 0 1 2 3 yva
  • iOS 推送其他应用的通知

    有没有办法接收所有应用程序的所有推送通知 那么所有通知都显示在通知中心吗 如果是 是否也可以在收到来自任何应用程序的任何推送通知时执行操作 Thanks 编辑 该应用程序是否会被苹果接受并不重要 推送通知将发送到注册接收通知的应用程序 您无
  • 使用 capistrano+nginx 在单个数字海洋 Droplet 中部署多个 Rails 应用程序

    我有一个在 IP xxx xxx xxx xx 的数字海洋服务器上运行的 Rails 应用程序 使用 Capistrano 部署现在很容易运行 现在我正在考虑使用 capistrano 将另一个应用程序部署到同一服务器 经过多次尝试研究我没