<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>rubyfun (rubyfun)</title>
    <link>https://ruby-china.org/rubyfun</link>
    <description/>
    <language>en-us</language>
    <item>
      <title>使用 Kamal2 部署 rails 遇到问题</title>
      <description>&lt;p&gt;最近使用 Kamal 2 部署 Rails 应用，应用服务器使用的 unicorn，之前在&lt;a href="/Rei" class="user-mention" title="@Rei"&gt;&lt;i&gt;@&lt;/i&gt;Rei&lt;/a&gt;所搭建的 geeknote 平台进行了提问，也非常感谢 Rei 帮忙解决了非常多疑惑，之前的帖子如下
&lt;a href="https://geeknote.net/ae86/posts/3110" rel="nofollow" target="_blank"&gt;https://geeknote.net/ae86/posts/3110&lt;/a&gt;
 目前 Rails 的服务器可以正常启动，但遇到如下几个问题&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;unicorn 的日志文件目录，每次部署的时候，都会变化，导致要查询历史日志变得不方便&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="c1"&gt;# unicorn日志文件路径&lt;/span&gt;
&lt;span class="sr"&gt;/var/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;docker&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;overlay2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="n"&gt;b02e1e84b80b39d352f233d6922817bbd3a32f67a7070972c3b21e2e672a6d1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;merged&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;deployer&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rails_test&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;log&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;每次执行 &lt;code&gt;kamal deploy&lt;/code&gt;部署的时候，随时容器 ID 的变化，unicorn 对应的日志文件目录会随之变化，从而不方便日志收集，我期望的是将日志固定写到目录 &lt;code&gt;/home/deployer/rails_test&lt;/code&gt; 这个目录&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;code&gt;.camal/secrets&lt;/code&gt; 文件里面的环境变量，没有被 Kamal 2 push 到远程的 server 上面，登录远程服务器发现
&lt;code&gt;~/.kamal/apps/rails_test/env/roles/web.env&lt;/code&gt;文件内容为空&lt;/li&gt;
&lt;/ol&gt;

&lt;ol&gt;
&lt;li&gt;Kamal 2 使用 kamal-proxy 进行代理，未使用 Kamal 之前，项目使用的 nginx 作为代理，ActionCable 和 Rails 共同部署，对 ActionCable 的 nginx 配置如下&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;location&lt;/span&gt; &lt;span class="sr"&gt;/cable {
    proxy_pass http:/&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;unix&lt;/span&gt;&lt;span class="ss"&gt;:/&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;deployer&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rails_test&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;tmp&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;sockets&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;unicorn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sock&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;proxy_http_version&lt;/span&gt; &lt;span class="mf"&gt;1.1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;proxy_set_header&lt;/span&gt; &lt;span class="no"&gt;X&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="no"&gt;Forwarded&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="no"&gt;Proto&lt;/span&gt; &lt;span class="n"&gt;http&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;proxy_set_header&lt;/span&gt; &lt;span class="no"&gt;Host&lt;/span&gt; &lt;span class="vg"&gt;$http_host&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;proxy_set_header&lt;/span&gt; &lt;span class="no"&gt;Upgrade&lt;/span&gt; &lt;span class="vg"&gt;$http_upgrade&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;proxy_set_header&lt;/span&gt; &lt;span class="no"&gt;Connection&lt;/span&gt; &lt;span class="s2"&gt;"Upgrade"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;proxy_set_header&lt;/span&gt; &lt;span class="no"&gt;X&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="no"&gt;Real&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="no"&gt;IP&lt;/span&gt; &lt;span class="vg"&gt;$remote_addr&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;请问，怎么在 kamal-proxy 里面实现如果上 nginx 的设置。&lt;/p&gt;

&lt;p&gt;Kamal 的部署，我目前主要看了 DHH 有关的介绍，以及在 Youtube 上面的一些视频，但社区的资源较少，因此在 geeknote 提了问，又在 rubychina 上面提问，还请大家理解，也期待大家帮忙来解惑，谢谢。&lt;/p&gt;</description>
      <author>rubyfun</author>
      <pubDate>Mon, 23 Dec 2024 14:51:14 +0800</pubDate>
      <link>https://ruby-china.org/topics/43985</link>
      <guid>https://ruby-china.org/topics/43985</guid>
    </item>
  </channel>
</rss>
