異なる .local ドメインには異なる nginx サーバーを使用する

異なる .local ドメインには異なる nginx サーバーを使用する

.local私はRPi上で異なるドメインで異なるサーバーを実行しようとしています。これは私のnginx default.confです

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    # Add index.php to the list if you are using PHP
    index index.html index.htm index.nginx-debian.html;
    server_name raspberrypi.local;
}

/etc/hostsファイル -

127.0.0.1   localhost
::1     localhost ip6-localhost ip6-loopback
ff02::1     ip6-allnodes
ff02::2     ip6-allrouters

127.0.1.1       raspberrypi

今はavahi-publish別のドメインをエイリアスしています

avahi-publish -a -R foo.local 192.168.68.120

しかし、このドメインにアクセスすると、nginx のデフォルトの HTML も表示されますが、これは望ましくありません。そのドメインで実行されている他のサーバーをまだ構成していないことは理解していますが、接続できない、または到達できないというメッセージが表示されると予想されます。

.localそれが不可能な場合、エイリアスではない複数のドメイン名を持つ方法はありますか?

答え1

しかし、このドメインにアクセスすると、nginx のデフォルトの HTML も表示されますが、これは望ましくありません。そのドメインで実行されている他のサーバーをまだ構成していないことは理解していますが、接続できない、または到達できないというメッセージが表示されると予想されます。

Nginxをlistenするように設定しているため、「接続できません」というメッセージは表示されません。全てこのサーバーのアドレス –ここでの意味は、 akalisten *:80でリッスンしている場合は、任意のローカル IPv4 アドレスへの接続を受け入れるということです。( IPv6 の場合も同様です。)0.0.0.0*[::]

(このserver_nameオプションはこれに影響を与えません。受信したリクエストのHTTP 'Host'ヘッダーに基づいて正しいserver{}ブロックを選択するだけです。接続が確立されました。つまり、IP ベースではなく、名前ベースの仮想ホストを実装します。

仮想ホストを IP ベースにしたい場合は、ワイルドカード アドレスではなく特定の IP アドレスをリッスンするように server{} ブロックを変更します。

server {
    listen 192.168.68.xxx:80;
}

アドレスがインターフェースに割り当てられる前にNginxが起動すると失敗することに注意してください。(これを回避するには、IP_FREEBINDただし、Nginx はまだこれをサポートしていないようです。

関連情報