Nginxのserver_nameって複数設定できるの?【Apachのエイリアスみたいなものです】

Nginxのserver_nameって複数設定できるの?【Apachのエイリアスみたいなものです】 プログラミング
Nginxのserver_nameって複数設定できるの?【Apachのエイリアスみたいなものです】

Webサーバーってみなさん、何使ってますか?

一時期はApache(アパッチ)を利用しているのがほとんどだったかと思いますが、近年ではNginx(エンジンエックス)を使っているサイトが多くなってきています。

簡単に言うと処理の違いがあり、大量アクセスをさばくには Apache < Nginxの方が向いている事が判明しNginxの利用者数が増えているといった感じですね。

そんなNginxですが、「server_name」という設定項目に複数の設定ができないか?調べてみました。

このブログは現役のエンジニア(プログラマー歴が約12年)の僕(よしたか)が2019年12月後半から日々更新しております。

もしもアフィリエイトは会員登録後も無料です!
今すぐ会員登録してアフィリエイトを始めよう!

エイリアス的な使い方でNginxのserver_nameは複数設定可能

例えばですが、

server {
    server_name test1.com;
    root   /var/www/public;
    ・
    ・
    ・
}

server {
    server_name test2.com;
    root   /var/www/public;
    ・
    ・
    ・
}

server {
    server_name test3.com;
    root   /var/www/public;
    ・
    ・
    ・
}

こんな記述でも問題ないのですが、なんだかスマートじゃないですよね。

こんな時に「server_name」は複数設定できます。

server {
    server_name test1.com test2.com test3.com;
    root   /var/www/public;
    ・
    ・
    ・
}

こうやって半角スペース区切りで複数指定出来ちゃいます。

また、

server {
    server_name ~^test(1|2|3)\.com$;
    root   /var/www/public;
}

こんな感じで正規表現でも出来ちゃいます。

Nginxって結構柔軟な書き方ができますね。

どちらでもいいですが、視覚的には前者がいいでしょうね。

Nginxのserver_nameにはIPアドレスも指定可能

これって以外と知っている人は少ないかもしれませんが、「server_name」にはIPアドレスも指定できます。

server {
    server_name test1.com test2.com test3.com 192.168.0.xx;
    root   /var/www/public;
    ・
    ・
    ・
}

こんな感じですね。

IPアドレス直打ちでもWebページを表示したい時なんかに便利ですね。(あんまりこのような使い方をする人はいないと思いますが…)

まとめ

この記事のおさらい
  • Nginxのserver_nameは複数指定可能
  • Nginxのserver_nameは正規表現で設定可能
  • Nginxのserver_nameはIPアドレスの設定も可能

いかがだったでしょうか。

僕はずっとApacheを利用してきましたが、最近ではNginxを使うプロジェクトも多くなってきています。

プログラマーにはNginxの記述方法の方が何かとわかりやすいのかな?とかも思いますが、この機会にNginxを使ってみてはどうでしょうか。

今日はさくっと以上となります!