2016-06-20 5 views
0

nginxのを設定しない:5.0.28nginxのサーバー名の正規表現マッチはpassenger_app_env

OS:Ubuntuの私は自分自身に私のアプリケーションのそれぞれにシンボリックリンクしている14.04


passenger-install-nignx-module

旅客バージョンで構築されました環境フォルダのセット:

  • /リポジトリ
    • /development.manager
      • /アプリ
      • ...
    • /test.manager
    • /staging.manager
    • ...

実際のフォルダは私のHDD上の別の場所にあります。これらのフォルダはすべて、その1つのフォルダを指し示すシンボリックリンクです。

問題はnginxのが適切乗客の環境変数を設定していないようですということです。それが意味をなす(とnginxの設定ファイルは、物事が壊れたので、変わったの唯一のものです)しないアプリケーションエラーがスローログを確認します。また、状態を示すエラーページ:ステージングまたは生産 モードでは、このWebアプリケーションを実行しているので

は、エラーの詳細は、セキュリティ上の理由から、このWebページ から省略されています。

つまり、ログのrootディレクトリにdevelopment.managerが表示されても、開発環境を使用していないことを示します。これは私がURL:http://manager-development/を介してアクセスするときです。私は解決策は、私はhereだけでなく、おそらく誤って設定さnginxのブロックを提供する答えの組み合わせであるかもしれない気持ちを持って

server { 
    listen 80; 
    server_name ~^manager-(?<environment>development|test)$; 
    passenger_app_env $environment; 
    passenger_ruby /home/vagrant/.rvm/gems/[email protected]/wrappers/ruby; 
    passenger_enabled on; 
    root /home/vagrant/apps/$environment.manager/public; 
    client_max_body_size 30M; 
} 

は、ここに私のnginxのsites-enabled設定から関連の抜粋です。

編集:私は明示的に変数が「上がらないようだと、私はこのアプローチをあきらめました...文字列として出力環境というアプリと、それは文字通り「$環境」だ私のレールに

答えて

0

をエラーが発生しましたnginxは特定の場所で使用すると解釈しません。私は今、私の環境/アプリ名を反復し、構成ブロックを生成するためにカスタムバッシュ/ Rubyスクリプトを使用しています。