Ubuntu 24.04 구성하기 글에서 사용하는 도구입니다.
default.conf
파일은 명시적으로 지정되지 않은 웹호스트에 대해서 표시되는 내용을 설정합니다.(기본사이트)/etc/nginx/conf.d/default.conf
내용을 아래 중 어느 하나로 변경합니다..이 작업을 하지 않으면 Welcome to nginx! 페이지가 표시됩니다. (/usr/share/nginx/html)
기본값 그대로 두기
따로 설정하지 않고 기본 페이지를 (Welcome to nginx!) 그대로 둡니다.
가만히 두어도 문제가 발생하지는 않습니다.
접속 차단
명시적으로 지정하지 않은 모든 호스트에 대한 연결을 차단합니다. status 444 는 nginx 전용코드이며 응답없음 상태가 됩니다.
클라이언트에는 ERR_EMPTY_RESPONSE 에러메시지가 표시됩니다.
코드를 더블 클릭하면 선택됩니다.
server { listen 80 default_server; server_name localhost; server_tokens off; return 444; }
HTTPS 접속 차단
명시적으로 지정하지 않은 모든 호스트에 대한 연결을 차단합니다. status 444 는 nginx 전용코드이며 응답없음 상태가 됩니다.
클라이언트에는 ERR_EMPTY_RESPONSE 에러메시지가 표시됩니다.
운영체제 최초 1회에 한해 다음명령어로 기본 인증서를 설치해주어야합니다.
apt install ssl-cert
코드를 더블 클릭하면 선택됩니다.
server { listen 443 ssl http2 default_server; server_name localhost; server_tokens off; ssl_certificate "/etc/ssl/certs/ssl-cert-snakeoil.pem"; ssl_certificate_key "/etc/ssl/private/ssl-cert-snakeoil.key"; ssl_ciphers 'PSK'; return 444; }
고정 메세지 출력
접속이 정상적으로 되며, 고정으로 지정한 문구가 출력됩니다. (예제의 경우 WEB 이라고 표시됨)
코드를 더블 클릭하면 선택됩니다.
server { listen 80 default_server; server_name localhost; server_tokens off; add_header Content-Type "text/plain"; return 200 "WEB"; }
HTTPS 고정 메세지 출력
접속이 정상적으로 되며, 고정으로 지정한 문구가 출력됩니다. (예제의 경우 WEB SSL 이라고 표시됨)
운영체제 최초 1회에 한해 다음명령어로 기본 인증서를 설치해주어야합니다.
apt install ssl-cert
코드를 더블 클릭하면 선택됩니다.
server { listen 443 ssl http2 default_server; server_name localhost; server_tokens off; ssl_certificate "/etc/ssl/certs/ssl-cert-snakeoil.pem"; ssl_certificate_key "/etc/ssl/private/ssl-cert-snakeoil.key"; add_header Content-Type "text/plain"; return 200 "WEB SSL"; }
특정사이트로 이동
명시적으로 지정하지 않은 모든 호스트에 대해 특정 페이지로 이동하도록 설정합니다. (301 redirect)
다음은 https://blog.lael.be/post/8319 페이지로 이동하도록 설정하는 예제입니다.
server { listen 80 default_server; server_name localhost; return 301 https://blog.lael.be/post/8319; }
기본사이트 (특정아이피 접속만 허용)
기본값에서 php 실행옵션을 추가하고 ip 제한을 설정합니다. (당신의 현재 아이피 : 18.118.217.142)
보통 기본사이트/healthcheck.php 파일을 생성해서 서비스 상태 검사 용도로 사용합니다.server { listen 80 default_server; server_name localhost; root /usr/share/nginx/html; server_tokens off; allow 192.168.0.0/16; allow 172.31.0.0/16; allow 10.20.30.100; allow 18.118.217.142; deny all; location / { index index.php index.html; } location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+?\.php)(/.*)$; if (!-f $document_root$fastcgi_script_name) { return 404; } fastcgi_pass unix:/run/php/php7.3-fpm.sock; fastcgi_index index.php; include fastcgi_params; } }