웹사이트 검색

Ubuntu 18.04에 Nginx를 설치하는 방법 [빠른 시작]


소개

Nginx는 세계에서 가장 인기 있는 웹 서버 중 하나이며 인터넷에서 가장 크고 가장 트래픽이 많은 사이트를 호스팅하는 역할을 합니다. 대부분의 경우 Apache보다 리소스 친화적이며 웹 서버 또는 리버스 프록시로 사용할 수 있습니다.

이 가이드에서는 Ubuntu 18.04 서버에 Nginx를 설치하는 방법을 설명합니다. 이 튜토리얼의 더 자세한 버전은 Ubuntu 18.04에 Nginx를 설치하는 방법을 참조하십시오.

전제 조건

이 가이드를 시작하기 전에 다음이 있어야 합니다.

  • Ubuntu 18.04 서버 및 sudo 권한이 있는 루트가 아닌 일반 사용자. 또한 필수적이지 않은 포트를 차단하려면 기본 방화벽을 활성화해야 합니다. Ubuntu 18.04용 초기 서버 설정 가이드에 따라 일반 사용자 계정을 구성하고 방화벽을 설정하는 방법을 배울 수 있습니다.

사용 가능한 계정이 있으면 루트가 아닌 사용자로 로그인하여 시작하십시오.

1단계 – Nginx 설치

Nginx는 Ubuntu의 기본 리포지토리에서 사용할 수 있으므로 apt 패키징 시스템을 사용하여 설치할 수 있습니다.

로컬 패키지 색인을 업데이트합니다.

  1. sudo apt update

Nginx 설치:

  1. sudo apt install nginx

2단계 – 방화벽 조정

필수 서버 설정 자습서를 따랐다면 UFW 방화벽이 활성화된 것입니다. 다음 명령을 사용하여 사용 가능한 ufw 애플리케이션 프로필을 확인합니다.

  1. sudo ufw app list
Output
Available applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH

포트 80에서 트래픽을 허용하면서 구성한 트래픽을 계속 허용하는 가장 제한적인 프로필을 활성화해 보겠습니다.

  1. sudo ufw allow 'Nginx HTTP'

변경 사항을 확인합니다.

  1. sudo ufw status
Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6)

3단계 – 웹 서버 확인

systemd init 시스템에서 다음을 입력하여 서비스가 실행 중인지 확인하십시오.

  1. systemctl status nginx
Output
● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2018-04-20 16:08:19 UTC; 3 days ago Docs: man:nginx(8) Main PID: 2369 (nginx) Tasks: 2 (limit: 1153) CGroup: /system.slice/nginx.service ├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; └─2380 nginx: worker process

기본 Nginx 랜딩 페이지에 액세스하여 IP 주소를 통해 소프트웨어가 제대로 실행되고 있는지 확인합니다.

http://your_server_ip

기본 Nginx 랜딩 페이지가 표시되어야 합니다.

4단계 – 서버 블록 설정(권장)

Nginx 웹 서버를 사용할 때 서버 블록(Apache의 가상 호스트와 유사)을 사용하여 구성 세부 정보를 캡슐화하고 단일 서버에서 둘 이상의 도메인을 호스트할 수 있습니다. DigitalOcean DNS 소개라는 도메인을 설정합니다.

example.com에 대한 디렉토리를 작성하고 -p 플래그를 사용하여 필요한 상위 디렉토리를 작성하십시오.

  1. sudo mkdir -p /var/www/example.com/html

디렉터리 소유권을 할당합니다.

  1. sudo chown -R $USER:$USER /var/www/example.com/html

umask 값을 수정하지 않은 경우 웹 루트의 권한이 정확해야 하지만 다음을 입력하여 확인할 수 있습니다.

  1. sudo chmod -R 755 /var/www/example.com

nano 또는 좋아하는 편집기를 사용하여 샘플 index.html 페이지를 만듭니다.

  1. nano /var/www/example.com/html/index.html

내부에 다음 샘플 HTML을 추가합니다.

<html>
    <head>
        <title>Welcome to Example.com!</title>
    </head>
    <body>
        <h1>Success!  The example.com server block is working!</h1>
    </body>
</html>

완료되면 파일을 저장하고 닫습니다.

/etc/nginx/sites-available/example.com에서 새 서버 블록을 만듭니다.

  1. sudo nano /etc/nginx/sites-available/example.com

새 디렉터리 및 도메인 이름에 맞게 업데이트된 다음 구성 블록을 붙여넣습니다.

server {
        listen 80;
        listen [::]:80;

        root /var/www/example.com/html;
        index index.html index.htm index.nginx-debian.html;

        server_name example.com www.example.com;

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

완료되면 파일을 저장하고 닫습니다.

파일에서 sites-enabled 디렉토리에 대한 링크를 생성하여 파일을 활성화합니다.

  1. sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

이제 두 개의 서버 블록이 활성화되고 listenserver_name 지시문을 기반으로 요청에 응답하도록 구성됩니다.

  • example.com: example.comwww.example.com에 대한 요청에 응답합니다.
  • default: 포트 80에서 다른 두 블록과 일치하지 않는 모든 요청에 응답합니다.

추가 서버 이름 추가로 인해 발생할 수 있는 해시 버킷 메모리 문제를 방지하려면 /etc/nginx/nginx.conf 파일에서 단일 값을 조정해야 합니다. 파일 열기:

  1. sudo nano /etc/nginx/nginx.conf

server_names_hash_bucket_size 지시문을 찾아 # 기호를 제거하여 줄의 주석을 제거합니다.

...
http {
    ...
    server_names_hash_bucket_size 64;
    ...
}
...

구문 오류 테스트:

  1. sudo nginx -t

변경 사항을 적용하려면 Nginx를 다시 시작하십시오.

  1. sudo systemctl restart nginx

이제 Nginx가 도메인 이름을 제공해야 합니다. http://example.com으로 이동하여 이를 테스트할 수 있습니다. 여기서 다음과 같은 내용이 표시되어야 합니다.

결론

이제 웹 서버를 설치했으므로 제공할 콘텐츠 유형과 보다 풍부한 경험을 만드는 데 사용할 기술에 대한 많은 옵션이 있습니다.

보다 완전한 애플리케이션 스택을 구축하려면 Ubuntu 18.04에서 LEMP 스택을 구성하는 방법에 대한 이 문서를 확인하십시오.