私はWebサーバーとしてPumaを使ってRuby on Railsアプリケーションを配備することができます。可能な次のポートを見つける
upstream {{ app_name }} {
server {{ ip_address }}:8080;
}
すべて:これはその後、アプリにアクセスするためにnginxのバーチャルホストの設定に使用されている
bind "tcp://{{ ip_address }}:8080"
:展開の一環として、プーマの設定は、ポート8080上のサーバーのIPアドレスにバインドこれはうまくいきます。しかし、私は今、アプリケーション(ステージング、プロダクション)の複数のコピーを同じサーバーに展開したいのですが、明らかに8080上のいくつかのバインディングが問題を引き起こしているので、別のポートを使用する必要があります。
最も簡単な解決策は、ポートをグループvarに含めることです。次に、アプリケーションのデプロイ時にドロップします。しかし、これはすでにサーバー上で動作しているアプリの背景知識を必要とし、使用するポートを「発見」できるように感じるような気がします。
代わりに、私は8080で始まり、1つが使用されなくなるまでそれぞれのポートを調べて何らかの種類の反復を行うことを検討していました。 netstat -anp | grep 8080
は、ポートが使用されている場合はリターンコード0を返します。そのため、おそらく私はそのコマンドを使ってテストすることができます(ただし、ループする方法はわかりません)。
誰もこの問題に立ち向かうことはありませんか?私が見落としているより優雅な解決策はありますか?