처리되지 않은 모든 호스트를 포착하도록 Nginx 설정


41

이미 많은 가상 호스트가있는 경우 가상 호스트와 일치하지 않는 요청을 처리하기 위해 가상 호스트를 작성하려면 어떻게해야합니까? (즉, IP, .etc 등으로 연결된 다른 도메인에 의한 액세스)

답변:


52

서버 이름 _; 청취 구성의 default_server가 찾고 있습니다.

예:

server {

   listen 80 default_server;
   server_name _;

   root /var/www/default; (or wherever)    

}

1
그리고 https 경우 :listen 443 ssl default_server;
제임스 T 스넬

이 기능을 활성화하면 owncloud 9응답하지 않습니다. 왜? Owncloud VHOST에는 server_name이 있으며 default_server가 아닙니다.
Corni

나는 80443 만 열려 있지 않습니다 .
코니

이것을 추가하면 / etc / nginx / sites-enabled /에있는 다른 구성 스 니펫은 무시됩니다. /var/www/default이 경우 모든 도메인으로 이동합니다 . 스 니펫을 어떻게 주문해야하나요?
rubo77

postgresql 연결에 vhos를 만들 수 있습니까?
Erlon Charles

4

SSL을 사용하는 경우 default_server-인증서 및 키 (자체 서명 가능)에 대한 추가 배관이 필요합니다.

server {
    server_name _;
    listen 80 default_server;
    listen 443 ssl default_server;
    ssl_certificate <path to cert>;
    ssl_certificate_key <path to key>;
    return 404; # or whatever
}

Nginx는 IP / 포트 일치 default_server에서 SSL 연결을 수락하려고합니다. 그러한 서버에 인증서 / 키가 없으면 nginx는 연결을 끊습니다. 다른 서버는 시도하지 않습니다. 따라서 인증서 / 키를 잊지 마십시오.


SSL 인증서에 대한 중요 사항! 인증서가 없으면 전체 nginx 서버가 실행되지 않습니다 ( nginx -t"ok"라고 해도 )
Philipp

3
server {
  listen 80 default_server;
  listen 443 ssl default_server;
  listen [::]:80 default_server;
  listen [::]:443 ssl default_server;

  server_name _;
  root /path/to/default;
}

항목은 각각 포트 80 (HTTP), 포트 443 (HTTPS), 포트 80 IPv6 및 포트 443 IPv6에 대한 것입니다.

log_not_found off;찾을 수없는 페이지에 대한 로그 항목을 추가하지 않도록 추가 를 고려할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.