.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 はまだこれをサポートしていないようです。