>  기사  >  운영 및 유지보수  >  Nginx 보안 배포: 서버 구성부터 시작

Nginx 보안 배포: 서버 구성부터 시작

WBOY
WBOY원래의
2023-06-10 08:24:141170검색

Nginx는 고성능, 안정성 및 확장성을 제공할 수 있는 탁월한 HTTP 및 역방향 프록시 서버입니다. Nginx 서버의 보안과 안정성을 보장하려면 보안 배포가 필요합니다. 이 기사에서는 서버 구성부터 시작하여 Nginx의 설치, 구성, 최적화 및 보안 배포를 자세히 소개합니다.

  1. 서버 구성

Nginx를 설치하기 전에 기본 서버 구성을 수행해야 합니다. Linux 운영 체제를 사용하고 최신 시스템 업데이트와 보안 패치를 설치하는 것이 좋습니다. 또한 Nginx 서버의 고성능을 보장하려면 서버에 충분한 메모리와 프로세서 성능이 있어야 합니다.

  1. Nginx 설치

Nginx는 공식 홈페이지 https://nginx.org/en/download.html에서 최신 안정 버전을 다운로드할 수 있습니다. 다운로드가 완료되면 다음 명령을 사용하여 설치합니다.

tar -zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
./configure
make
sudo make install
  1. Configure Nginx

Nginx의 기본 구성 파일은 /etc/nginx/nginx.conf에 있습니다. 변경 시 반드시 원본 파일을 백업해 두시기 바랍니다. 다음은 기본 Nginx 구성 파일의 예입니다.

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

events {
    worker_connections 1024;
}

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log /var/log/nginx/access.log main;
    sendfile on;
    # ...
    server {
        listen 80 default_server;
        listen [::]:80 default_server;
        root /usr/share/nginx/html;
        index index.html;
        server_name _;
        location / {
            try_files $uri $uri/ =404;
        }
        # ...
    }
}

이 파일에는 사용자 및 작업자 프로세스 구성, 로그 형식, 액세스 로그 위치, 파일 전송 구성 및 기본 HTTP 서버 블록이 포함됩니다. Listen 지시어는 서버 블록이 수신 대기해야 하는 포트를 정의합니다. 이 예제에서는 포트 80이 기본 서버 포트로 정의됩니다. 사용자가 브라우저의 IP 주소를 사용하여 포트에 액세스하면 Nginx는 서버의 기본 파일에 액세스하여 클라이언트에 반환합니다.

  1. Nginx 구성 최적화

Nginx 성능은 서버 구성 및 네트워크 환경을 포함한 여러 요소에 따라 달라집니다. Nginx의 성능을 최적화하려면 다음을 수행할 수 있습니다.

  • Nginx의 캐싱 기능을 활성화합니다. 이렇게 하면 CSS 파일, JavaScript 파일, 이미지 파일과 같은 정적 파일에 대한 요청에 대한 응답 시간이 빨라집니다. 다음은 표준 HTTP 캐싱 메커니즘을 예로 들어 구성 예시입니다.
http {
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
    server {
        location ~* .(png|jpg|jpeg|gif|ico)$ {
            proxy_cache my_cache;
            proxy_pass http://backend;
        }
    }
}
  • worker_processes 수를 늘려 성능을 향상합니다. 작업자 프로세스 수는 서버에서 사용 가능한 CPU 코어 수와 동일해야 합니다. 예를 들어 서버에 CPU 코어가 4개 있는 경우 Worker_process를 4로 설정해야 합니다.
  • TCP nopush 및 nodelay 기능을 활성화합니다. 이렇게 하면 TCP 프로토콜의 대기 시간과 패킷 손실이 줄어듭니다. 다음은 구성 예입니다.
http {
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    # ...
}
  1. Secure 배포

Nginx의 보안은 매우 중요합니다. 보안 배포를 위한 몇 가지 제안 사항은 다음과 같습니다.

  • 데이터 전송, 특히 은행 계좌 정보나 신용 카드 번호와 같은 민감한 데이터 전송을 암호화하려면 HTTPS 프로토콜을 사용하세요. 인증서를 사용하면 전송 중에 데이터 전송이 변조되거나 도난당하는 것을 방지할 수 있습니다.
  • DDoS 공격으로부터 웹사이트를 보호하려면 요청 속도를 제한하세요. 예를 들어 Nginx의limit_req_zone 지시문을 사용하여 요청 속도를 설정합니다.
http {
    limit_req_zone $binary_remote_addr zone=my_zone:10m rate=1r/s;
    server {
        location / {
            limit_req zone=my_zone burst=5 nodelay;
            # ...
        }
    }
}
  • 악성 파일 업로드를 방지하려면 파일 업로드 크기를 제한하세요. Nginx의 client_max_body_size 지시어를 사용하여 파일 크기 제한을 설정하세요.
http {
    client_max_body_size 10M;
    server {
        location /upload {
            # ...
        }
    }
}
  • 시스템에서 불필요한 서비스를 끄세요. 예를 들어 서버에 메일 서비스가 필요하지 않은 경우 위험을 줄이기 위해 메일 서비스를 꺼야 합니다.
  • 보안을 보장하기 위해 시스템과 소프트웨어를 정기적으로 업데이트하세요. 업데이트는 출시된 후 즉시 서버에 적용되어야 합니다.

이 글에서는 Nginx의 설치, 구성, 최적화 및 안전한 배포에 대해 자세히 소개합니다. 이러한 단계를 통해 Nginx 서버의 고성능, 보안 및 안정성을 보장할 수 있습니다.

위 내용은 Nginx 보안 배포: 서버 구성부터 시작의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.