質問: ### 前提・実現したいこと nginx の conf で、server_name に変数を使いたいと考えております。 イメージとしては、 ``` server_name www.example.com example.com; root /var/www/html/example.com; ``` 上記の設定を、下記のように置き換えたいという考えです。 ``` set $var_server_name example.com; server_name www.$var_server_name $var_server_name; root /var/www/html/$var_server_name; ``` しかしながら、上記は誤った記法なようで、期待通りにはいきませんでした。 正しい記法について、お教え願いたく存じます。 ### 試したこと 変数定義部分や変数展開部分をダブルクォートで囲むことも試しましたが、やはり期待通りにいきませんでした。 ### 補足情報(言語/FW/ツール等のバージョンなど) ・CentOS 7.2 ・nginx 1.11.3
回答: server_name には $hostname 以外の変数は設定できないようです。 * Nginx.org: Server names * nginx server_name based on $hostname * nginx set variable in location 以下の記事では、perl_set で環境変数から値を取得し、server_name に設定しているようですが、バージョン 1.11.3 で試したところ、うまくいきませんでした。 過去のバージョンでは設定できたのかもしれません。 nginx.conf で環境変数を読み込む