블로그 방문자만 3개월 추가 무료 이용권 + 3년 플랜 10% 할인 혜택을 받으세요 와이스블로그10
거래를 잡아

설치하는 방법 Nginx Linux 서버에서 (단계별 가이드 2026)

마지막 업데이트 : 2026 년 9 월 7 일 9 분 읽음 프라흐라드 프라자파티
설치 Nginx Linux에서

설치하려면 Nginx 리눅스 서버에서패키지를 업데이트하고, nginx 패키지를 설치하고, 서비스를 시작 및 활성화하고, 방화벽에서 80/443 포트를 열고, 기본 환영 페이지가 표시되는지 확인하십시오. Ubuntu/Debian에서는 apt를, RHEL/CentOS/AlmaLinux에서는 dnf를 사용하십시오. 그런 다음 서버 블록을 구성하고, Let's Encrypt를 사용하여 HTTPS를 활성화하고, 시스템을 다시 로드하십시오. Nginx.

이 가이드에서는 설치 방법을 배우게 됩니다. Nginx 리눅스 서버에서 안전하고 안정적이며 실제 운영 환경에 적합한 설정으로 올바르게 구축하는 방법을 알려드립니다. 저는 선임 기술 문서 작성자로서 다음과 같은 업무를 담당하고 있습니다. YouStable배포판별 명령어, 서버 블록 구성, Let's Encrypt를 사용한 HTTPS, 리버스 프록싱, 성능 튜닝 및 문제 해결에 대해 단계별로 안내해 드리겠습니다.

무엇인가 Nginx 왜 사용합니까?

무엇인가 Nginx 왜 사용합니까?

Nginx 고성능입니다 웹 서버 메모리 사용량이 적고 수천 개의 동시 연결을 처리할 수 있는 능력으로 잘 알려진 리버스 프록시입니다. 정적 파일 제공, 로드 밸런싱, 서버 역할 등에 이상적입니다. SSL 터미네이터 또는 Node.js, Python(Gunicorn/Uvicorn)과 같은 앱 서버로 프록시하는 방법 PHP-FPM 및 Ruby.

필수 조건 및 빠른 확인 목록

설치하기 전에 Nginx 리눅스 환경에서는 다음 사항들을 확인하세요:

  • 지원되는 운영 체제: Ubuntu 22.04/24.04, Debian 12, RHEL/CentOS/AlmaLinux/Rocky 8/9 또는 Amazon Linux.
  • 서버 셸에 대한 루트 또는 sudo 액세스 권한이 필요합니다.
  • 방화벽에서 포트 80(HTTP) 및 443(HTTPS)에 대한 접근이 허용됩니다.
  • 선택 사항: 서버의 공용 IP 주소를 가리키는 도메인 DNS A/AAAA 레코드.
  • TLS 인증서의 시간 동기화(chrony 또는 systemd-timesyncd).

설치 Nginx Ubuntu/Debian에서

Ubuntu 및 Debian에서 apt를 사용하여 설치하세요. Nginx 공식 저장소에서 가져온 것입니다.

1단계: 업데이트 및 설치

sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx

2단계: 방화벽(UFW) 열기

sudo ufw allow 'Nginx Full'
sudo ufw status

UFW가 활성화되어 있지 않은 경우 이 단계를 건너뛰거나 신중하게 활성화할 수 있습니다.

3 단계 : 확인 Nginx

systemctl status nginx --no-pager
curl -I http://YOUR_SERVER_IP
# Or visit http://YOUR_SERVER_IP in a browser

200 OK 응답과 기본값이 표시될 것입니다. Nginx 환영 페이지입니다.

설치 Nginx RHEL, CentOS, AlmaLinux, Rocky 및 Amazon Linux에서

RHEL 계열 시스템에서는 dnf(또는 yum)를 사용하여 설치하십시오. Nginx.

1단계: 설치 및 시작

# RHEL/CentOS/AlmaLinux/Rocky 8/9
sudo dnf install -y nginx
sudo systemctl enable --now nginx

# Amazon Linux 2023
sudo dnf install -y nginx
sudo systemctl enable --now nginx

# Amazon Linux 2 (if needed)
# sudo amazon-linux-extras install nginx1 -y
# sudo systemctl enable --now nginx

2단계: 방화벽 열기(firewalld)

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

SELinux가 강제 적용 중이고 로컬 앱에 프록시하거나 사용자 지정 웹 루트를 사용하려는 경우, 올바른 컨텍스트/부울 값을 설정하십시오.

# Allow Nginx to connect to network services (for reverse proxy)
sudo setsebool -P httpd_can_network_connect 1

# Label a custom web root directory for Nginx
sudo chcon -R -t httpd_sys_content_t /var/www/example.com/html

서버 블록(가상 호스트)을 생성합니다.

서버 블록을 사용하면 여러 도메인 또는 앱을 호스팅할 수 있습니다 . 아래는 example.com에 대한 정적 콘텐츠를 제공하는 간단하고 안전한 프로덕션 환경용 HTTP 구성 예시입니다. 필요에 따라 경로와 도메인 이름을 조정하세요.

1단계: 디렉터리 및 권한 준비

sudo mkdir -p /var/www/example.com/html
echo "<h1>It works!</h1>" | sudo tee /var/www/example.com/html/index.html

# Give ownership to your user or the web user
sudo chown -R $USER:$USER /var/www/example.com
sudo find /var/www/example.com -type d -exec chmod 755 {} ;

2 단계 : 추가 Nginx 서버 차단

Ubuntu/Debian에서는 sites-available 폴더에 파일을 생성하고 활성화하십시오. RHEL 계열에서는 conf.d 폴더에 파일을 넣으십시오.

# Ubuntu/Debian
sudo nano /etc/nginx/sites-available/example.com

# RHEL/CentOS/AlmaLinux/Rocky/Amazon Linux
sudo nano /etc/nginx/conf.d/example.com.conf
server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;

    root /var/www/example.com/html;
    index index.html index.htm;

    access_log /var/log/nginx/example.com.access.log;
    error_log  /var/log/nginx/example.com.error.log warn;

    location / {
        try_files $uri $uri/ =404;
    }
}

사이트를 활성화하고 새로 고침하세요 Nginx:

# Ubuntu/Debian only
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com

# All distros: test and reload
sudo nginx -t
sudo systemctl reload nginx

Let's Encrypt(Certbot)를 사용하여 HTTPS를 활성화하세요.

HTTPS는 보안, SEO 및 브라우저 신뢰도에 필수적입니다. Certbot은 인증서를 자동으로 요청 및 설치하고, TLS를 구성하며, 갱신을 설정할 수 있습니다.

Certbot 설치

# Ubuntu/Debian
sudo apt install -y certbot python3-certbot-nginx

# RHEL/CentOS/AlmaLinux/Rocky/Amazon Linux
sudo dnf install -y certbot python3-certbot-nginx

인증서 요청 및 설치

sudo certbot --nginx -d example.com -d www.example.com
# Follow prompts to enable redirect (HTTP to HTTPS)

Certbot은 systemd 타이머 또는 cron을 통해 자동 갱신을 설정합니다. 이를 확인하십시오.

sudo systemctl status certbot.timer
sudo certbot renew --dry-run

방화벽에서 443번 포트가 열려 있는지 확인하십시오. DNS Certbot을 실행하기 전에 A/AAAA 레코드가 서버를 가리키고 있습니다.

Nginx 리버스 프록시(Node.js, Python)로 사용 PHP-FPM)

Nginx 앱 서버로 트래픽을 프록시하는 데 탁월합니다. 아래는 WebSocket을 지원하는 기본적인 리버스 프록시 구성 예시로, localhost:3000에서 수신 대기하는 Node.js 또는 Python 앱에 적합합니다.

server {
    listen 80;
    server_name app.example.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;

        # Forward client details
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # WebSocket
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

SELinux가 활성화된 시스템에서 상위 앱으로 프록시하는 경우 웹 서버 에 대한 네트워크 연결을 허용하십시오.

sudo setsebool -P httpd_can_network_connect 1

성능 튜닝 및 보안 강화

일단 설치하면 Nginx 리눅스 환경에서 속도와 안전성을 향상시키기 위해 다음과 같은 실용적인 최적화 방법을 적용하십시오.

Gzip 및 HTTP/2

# /etc/nginx/conf.d/performance.conf (create this file)
gzip on;
gzip_comp_level 5;
gzip_min_length 256;
gzip_types text/plain text/css application/json application/javascript application/xml text/xml image/svg+xml;
gzip_vary on;

HTTP/2는 TLS 리스너에서 자동으로 활성화됩니다(listen 443 ssl http2;). Certbot의 Nginx 설치 프로그램은 일반적으로 이 지시문을 자동으로 추가합니다.

강력한 TLS 및 보안 헤더

# /etc/nginx/conf.d/security.conf
server_tokens off;                    # Hide Nginx version
client_max_body_size 20m;             # Adjust for your uploads

# Basic security headers (tune CSP to your app)
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Content-Security-Policy "default-src 'self'" always;

속도 제한(DDoS/무차별 대입 공격 완화)

HTTP 컨텍스트에서 공유 메모리 영역을 정의하고 위치별로 적용합니다.

# In /etc/nginx/nginx.conf (http block) or /etc/nginx/conf.d/limits.conf
limit_req_zone $binary_remote_addr zone=perip:10m rate=10r/s;

# In a server/location block
location /login {
    limit_req zone=perip burst=20 nodelay;
    proxy_pass http://127.0.0.1:3000;
}

관리 Nginx Systemd와 로그를 사용하여

안전한 변경, 재시작 및 디버깅을 위해 이러한 명령어를 매일 사용하십시오.

# Validate syntax before reload
sudo nginx -t

# Reload without dropping connections
sudo systemctl reload nginx

# Start/Stop/Status
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl status nginx

# Recent logs
sudo journalctl -u nginx --since "1 hour ago" --no-pager
tail -f /var/log/nginx/error.log
tail -f /var/log/nginx/access.log

일반적인 문제 해결

  • 포트가 이미 사용 중입니다. `sudo ss -tulpn | grep :80` 또는 `:443` 명령어를 사용하여 리스너를 확인하십시오. 충돌하는 서비스(예: Apache) 또는 포트를 변경하세요.
  • 403 접근 금지 오류: 디렉터리 소유권/권한 및 SELinux 컨텍스트를 수정하십시오. 루트 경로가 존재하고 읽기 가능한지 확인하십시오.
  • 404 찾을 수 없음: server_name을 확인하십시오. DNS그리고 location 블록에 try_files를 추가하세요.
  • 502 Bad Gateway: 상위 애플리케이션이 다운되었거나 SELinux에 의해 차단되었습니다. 애플리케이션을 시작하고 proxy_pass를 확인한 후 httpd_can_network_connect를 활성화하십시오.
  • Certbot 오류: 확인 DNS 검증 과정에서 레코드가 열려 있고, 80/443 포트가 열려 있으며, 방화벽이나 CDN에 의한 HTTP 차단이 강제로 발생하지 않는지 확인합니다.

깔끔하게 제거하거나 다시 설치하세요 Nginx

Ubuntu/Debian의 경우:

# Remove binaries but keep configs
sudo apt remove nginx nginx-common

# Full purge (removes configs)
sudo apt purge nginx nginx-common
sudo rm -rf /etc/nginx /var/www/example.com

RHEL 계열 시스템에서:

sudo dnf remove nginx
# Optionally remove /etc/nginx and any custom web roots with care

15년 이상 경영 경험에서 얻은 실질적인 팁 Nginx

  • 버전 고정: 운영 환경에서는 스테이징 환경에서 업그레이드를 테스트하세요. 패키지를 통해 버전을 고정할 수 있습니다. manage예상치 못한 변화를 피하기 위해서입니다.
  • 다운타임 없는 재시작: 재시작하기 전에 항상 `sudo nginx -t` 명령을 실행하십시오. 연결을 유지하려면 `reload` 명령(`restart`가 아님)을 사용하십시오.
  • 설정 파일 분리: 깔끔한 관리를 위해 사이트 설정 파일은 sites-available/sites-enabled (데비안 방식) 또는 도메인별 conf.d 폴더에 보관하세요.
  • 로그 순환: logrotate가 구성되어 있는지 확인하십시오. Nginx 디스크 용량 증가를 방지하기 위해.
  • 백업: Git을 사용하여 변경 사항을 추적하고 /etc/nginx 및 TLS 관련 자료(/etc/letsencrypt)를 정기적으로 백업하십시오.

설치해야 하는 이유 Nginx 에 YouStable 서버

힘든 작업을 건너뛰고 싶으시다면, YouStableSSD 기반 VPS 및 클라우드 서버에는 최신 Linux 운영체제, 완전한 루트 액세스 권한 및 선택 사양이 포함되어 있습니다. managed 지원. 스택을 사전 강화해 드리겠습니다. 구성 Nginx HTTPS를 사용하면 CMS 또는 애플리케이션에 최적화하고 가동 시간을 모니터링할 수 있으므로 서버 관리 문제가 아닌 비즈니스에 집중할 수 있습니다.

FAQ: 설치 Nginx Linux 서버에서

Nginx 사용?

Nginx 웹 서버이자 리버스 프록시입니다. 정적 웹사이트를 제공하고 백엔드 애플리케이션(Node.js, Python 등)으로 요청을 프록시합니다. PHP-FPM)은 TLS를 종료하고, 업스트림 서버의 로드 밸런싱을 수행하며, 성능 향상을 위한 캐싱 계층 역할을 합니다.

어떻게 확인하나요? Nginx 실행 중인가요?

`systemctl status nginx` 또는 `ps aux | grep nginx` 명령어를 사용하여 프로세스가 실행 중인지 확인할 수 있습니다. 또한 `curl -I http://127.0.0.1` 명령어를 사용하여 로컬에서 테스트하고 `/var/log/nginx/` 디렉터리의 로그를 확인할 수도 있습니다.

Nginx vs Apache어떤 걸 선택해야 할까요?

Nginx 높은 동시성, 정적 자산 및 리버스 프록시 사용 사례에서 뛰어난 성능을 발휘합니다. Apache 심층적인 .htaccess 통합 및 풍부한 모듈을 제공합니다. 많은 팀들이 이곳을 이용합니다. Nginx 앞에 Apache 또는 두 가지 장점을 모두 누릴 수 있는 앱 서버를 사용할 수도 있습니다.

어디 Nginx 설정 파일인가요?

전역 설정 파일은 일반적으로 /etc/nginx/nginx.conf에 있습니다. 사이트 설정 파일은 Ubuntu/Debian 시스템에서는 /etc/nginx/sites-available 및 sites-enabled에, RHEL 계열 시스템에서는 /etc/nginx/conf.d에 있습니다.

어떻게 재시작하거나 다시 로드하나요? Nginx 안전하게?

먼저 `sudo nginx -t` 명령으로 유효성을 검사한 다음, `sudo systemctl reload nginx` 명령으로 시스템을 재시작하여 연결을 끊지 않고 변경 사항을 적용하십시오. 재시작은 필요한 경우에만 사용하십시오.

제거 방법 Nginx 완전히?

Ubuntu/Debian 시스템에서는 `sudo apt purge nginx nginx-common` 명령을 실행하고 `/etc/nginx` 디렉토리를 삭제하십시오. RHEL 계열 시스템에서는 `sudo dnf remove nginx` 명령을 실행하고 더 이상 필요하지 않은 경우 `/etc/nginx` 및 웹 루트 디렉토리를 정리하십시오.

HTTPS를 활성화하려면 어떻게 해야 하나요? Nginx?

Certbot을 설치하고 Nginx 플러그인을 설치한 다음 `sudo certbot –nginx -d yourdomain -d www.yourdomain` 명령을 실행하세요. Certbot이 인증서를 발급받고, TLS를 구성하고, 자동 갱신을 설정합니다.

맺음말

이제 설치 방법을 아셨습니다. Nginx Linux 서버에서 방화벽을 열고, 서버 차단을 구성하고, HTTPS를 활성화하고, 애플리케이션에 대한 리버스 프록시를 설정하고, 프로덕션 환경에 맞게 보안을 강화하세요. 구성 테스트, 안정적인 재시작, 로그 모니터링 등 모범 사례를 준수하여 가동 시간을 높이세요. 더 빠른 시작을 원하시나요? YouStable 제공, 보안 및 최적화 Nginx 당신을 위해.

코멘트 남김

이메일 주소는 공개되지 않습니다. 필수 입력 항목은 * 로 표시되어 있습니다.

위쪽으로 스크롤