다른 .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 *:80여기서 의미하는 바입니다. 0.0.0.0일명 수신 대기 중인 경우 *모든 로컬 IPv4 주소에 대한 연결을 허용합니다. ( [::]IPv6에서도 마찬가지입니다.)

( server_name옵션은 이에 영향을 미치지 않습니다. 수신된 요청의 HTTP 'Host' 헤더를 기반으로 올바른 서버{} 블록을 선택하는 것뿐입니다.~ 후에연결이 설정되었습니다. 즉, IP 기반이 아닌 이름 기반의 가상호스트를 구현한다.)

가상 호스트가 IP 기반이 되도록 하려면 서버 블록을 변경하여 와일드카드 주소 대신 특정 IP 주소를 수신하도록 합니다.{}

server {
    listen 192.168.68.xxx:80;
}

주소가 인터페이스에 할당되기 전에 Nginx가 시작되면 실패할 것이라는 점을 명심하세요. (이것은 다음을 사용하여 피할 수 있습니다.IP_FREEBIND하지만 Nginx는 아직 이를 지원하지 않는 것 같습니다.)

관련 정보