2017-09-30 9 views
0

私のシステムで開発するときはサブドメインをキャプチャするのにserver_name ~^(?<subdomain>.+)\.localhost$;を使用しますが、プロダクションではリバースプロキシが複数のドメインに配備されています。 nginx変数$domainに格納されます。`server_name`を宣言しているときにnginx変数を使う方法

文字列補間を同時に実行しているときに正規表現のキャプチャを行うにはどうすればよいですか?

など。私は、RubyのERBnginx.confにコンパイルすることを周りのジャンプやドキュメントを読み取ろうとした後

server { 
    listen  80; 
    server_name ~^(?<subdomain>.+)\.localhost$; 

    location/{ 
     proxy_pass https://sarahah.com; # get the joke? ;) 
     proxy_set_header Host $subdomain.sarahah.com; 
    } 

答えて

0

、私はちょっとあきらめ、nginx.conf.erbファイルを作成し、:代わりに、私はserver_name ~^(?<subdomain>.+)\.${domain}$;

実際のコードを行うのですかserver_name ~^(?<subdomain>.+)\.localhost$の。

あなたが未来からこの問題を解決するために頭を悩ましている場合は、ERBファイルに行ってください。あなたの環境変数をnginx.confにするために何十ものbash echoをスクリプト化するよりも優れています。

私のコードは今のようになります。

server { 
    listen  80; 
    server_name ~^(?<subdomain>.+)\.<%= ENV['DOMAIN'] %>$; 

    location/{ 
     proxy_pass https://sarahah.com; # get the joke? ;) 
     proxy_set_header Host $subdomain.sarahah.com; 
    } 
関連する問題