기본 서버를 방지하는 가장 좋은 방법은 무엇입니까?

기본 서버를 방지하는 가장 좋은 방법은 무엇입니까?

나는 다수의 가상 호스트를 가지고 있으며 빈 페이지, 오류 페이지 또는 일반적으로 Nginx 리소스를 가장 효율적으로 사용하는 방법으로 기본 가상 호스트를 "끄고" 다른 가상 호스트만 다음을 통해 액세스할 수 있도록 허용하고 싶습니다. 사전 정의된 도메인.

답변1

정의하다default_server이는 다음을 반환합니다.HTTP 444암호:

server {
    listen      80 default_server;
    server_name _;
    return      444;
}

(4xx 오류 코드를 반환한다는 것은 클라이언트가 요청을 실패한 요청으로 해석할 수 있음을 의미합니다.HTTP 200 빈 페이지이지만 완전히 작동했습니다. 저를 믿으세요.)

포트 443/SSL 요청의 경우,당신이 사용할 수있는 ssl_reject_handshake on

답변2

그냥 정의하세요기본빈 index.html 파일이 있는 디렉토리를 가리키는 가상 호스트입니다.

server {
    listen       80 default_server;
    server_name  _ ;
    root /var/www/placeholder ; 
    index index.html;
}

/var/www/placeholder에 빈 색인을 배치합니다.

답변3

왜 그냥 다 부정하면 되지?

server {
    listen       80 default_server;
    server_name  _;

    location / {
        deny    all;
    }
}

답변4

이것이 nginx를 실행하는 Debian 10(buster)의 HTTP와 HTTPS 모두에 대해 저에게 효과적이었습니다 1.18.0.

참고: 저는 항상 /etc/nginx/sites-enabled` 폴더를 사용하여 가상 호스트 섹션 include /etc/nginx/sites-enabled/*;에 추가 하고 관리합니다 .http/etc/nginx/nginx.conf/etc/nginx/sites-available

1단계: 자체 서명된 자리 표시자 인증서 만들기

$ mkdir -p /usr/local/etc/ssl

$ cd /usr/local/etc/ssl

$ openssl req -new -x509 -days 1 -nodes -out default-cert.pem -keyout default-key.pem
Generating a RSA private key
.+++++
.........................+++++
writing new private key to 'default-key.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:

2단계: 기본 가상 호스트 생성

cat << EOF > /etc/nginx/sites-available/default
server {
    listen 80 default_server;
    listen 443 default_server ssl;

    return 444;

    ssl_ciphers aNULL;
    ssl_certificate /usr/local/etc/ssl/default-cert.pem;
    ssl_certificate_key /usr/local/etc/ssl/default-key.pem;
}
EOF

3단계: 기본 가상 호스트 활성화

cd /etc/nginx/sites-enabled
ln -s ../sites-available/default default

4단계: nginx 다시 시작

여기에 이미지 설명을 입력하세요

여기에 이미지 설명을 입력하세요

관련 정보