Ubuntu 20.04 LTS에 Nginx를 설치하는 방법

Ubuntu 20.04 시스템에 Nginx 웹 서버를 설치 및 설정하기 위한 전체 단계별 가이드

Nginx는 여러 플랫폼에서 사용할 수 있는 인기 있는 오픈 소스 역방향 프록시 웹 서버입니다. 소프트웨어는 이고르 시소예프 C10K 문제에 대한 솔루션으로 2004년에 처음 출시되었습니다. C10K 문제는 2000년대 초반에 쉽지 않은 1만 클라이언트를 동시에 처리하는 문제입니다.

이 튜토리얼에서는 Ubuntu 20.04 LTS에 Nginx를 설치하고 설정하는 방법을 살펴봅니다.

전제 조건

Ubuntu 20.04가 설치된 시스템 및 수도 사용자. 또한 포트 80 또는 443에서 실행되는 Apache와 같은 다른 웹 서버가 없어도 됩니다.

Nginx 설치

Nginx는 Ubuntu 20.04 저장소에서 사용할 수 있으며 적절한 패키지 관리자를 사용하여 설치할 수 있습니다. 따라서 Nginx를 설치하려면 다음을 사용하여 터미널을 엽니다. ctrl+alt+t 실행:

sudo apt 업데이트 및 sudo apt 설치 nginx

설치가 곧 완료되고 Nginx 데몬이 백그라운드에서 자동으로 시작됩니다. 따라서 Nginx의 상태를 확인하려면 다음을 실행하십시오.

sudo systemctl 상태 nginx

위의 명령을 실행한 후 Nginx 상태가 다음과 같이 표시되어야 합니다. 활성(실행 중) 아래와 같이 녹색으로 표시됩니다.

Ubuntu 방화벽(UFW) 구성

기본적으로 발신 포트 HTTP(80) 및 HTTPS(443)는 Ubuntu 20.04에서 닫힙니다. 또한 기본 방화벽 데몬은 ufw 모든 포트가 닫혀 있으므로 비활성화됩니다.

따라서 다른 시스템에서 Nginx 서버에 액세스하려면 다음을 활성화해야 합니다. ufw 포트에서 트래픽을 허용하도록 올바르게 설정하십시오. 80 그리고 443. 활성화하기 전에 ufw, 원격 서버에서 Nginx를 설정하는 경우 먼저 ufw 허용하는 규칙 SSH 실행하여:

sudo ufw ssh 허용

위의 명령은 SSH 허용하지 않고 원격 서버에 액세스 SSH 원격 서버에서 잠길 것입니다.

활성화 후 SSH 액세스를 활성화할 수 있습니다. ufw 다음을 실행하여 방화벽 데몬:

sudo ufw 활성화

이제 Nginx가 웹 트래픽을 제공할 수 있도록 HTTP 및 HTTPS 포트를 허용하도록 방화벽 규칙을 변경해야 합니다. 규칙을 변경하려면 다음을 실행하십시오.

sudo ufw allow 'Nginx Full'

Nginx 전체 모든 IP 주소에서 들어오고 나가는 트래픽에 대해 HTTP 및 HTTPS 포트를 모두 허용합니다.

그런 다음 규칙이 올바르게 추가되었는지 확인하십시오. ufw 다음 명령을 실행하여 방화벽:

sudo ufw 상태

위의 명령은 우리가 추가한 규칙을 출력합니다 ufw 방화벽 데몬.

Nginx 서버에 연결

이제 Nginx를 설치하고 구성했습니다. ufw 들어오는 HTTP 및 HTTPS 웹 트래픽을 허용하려면 서버의 IP 주소를 사용하여 Nginx 서버에 액세스할 수 있어야 합니다.

서버의 IP 주소를 모르는 경우 아래 명령을 사용하여 쉽게 검색할 수 있습니다.

IP 주소 표시 eth0 | 그렙 이넷 | awk '{ $2 출력; }' | sed 's/\/.*$//'

IP 주소를 얻었으면 브라우저에 붙여넣고 Enter 키를 누릅니다.

//당신의 서버 IP

모든 것이 올바르게 구성되었다면 'Welcome to nginx!' 웹페이지를 볼 수 있을 것입니다.

Nginx 파일 및 디렉토리

이제 Nginx가 설치되어 서버에 실행됩니다. 웹사이트/웹 앱을 구성하는 데 사용해야 하는 몇 가지 중요한 Nginx 파일 및 디렉터리를 살펴보겠습니다.

웹 서버 콘텐츠

서버 블록의 루트 디렉토리가 될 위치를 구성할 수 있습니다. Nginx의 기본 HTML은 직접적으로 /var/www/html, 앞서 접속한 '환영' 페이지가 있는 곳입니다.

일반적으로 도메인의 루트 디렉토리로 사용되는 다른 위치는 다음과 같습니다.

  • /집//
  • /var/www/html/
  • /고르다/

Nginx 구성 파일

모든 Nginx 구성 파일은 다음 위치에 있습니다. /etc/nginx 예배 규칙서. 기본 도메인을 설정하는 데 필요한 몇 가지 중요한 파일을 살펴보겠습니다.

  • /etc/nginx/nginx.conf: 이 파일에는 Nginx를 실행하는 데 필요한 모든 구성이 포함되어 있습니다.
  • /etc/nginx/sites-available/: 이 디렉토리에는 도메인의 모든 서버 블록 구성이 있지만 현재 활성화/배포되지 않아 클라이언트에서 액세스할 수 없습니다.
  • /etc/nginx/sites-enabled/: 이 디렉토리에는 클라이언트가 액세스할 수 있는 현재 활성/활성화된 도메인이 있습니다. 도메인을 활성화하려면 다음에서 도메인 구성 파일을 연결해야 합니다. 사용 가능한 사이트 ~로 사이트 사용 가능 예배 규칙서.
  • /etc/nginx/snippets/: 이 디렉토리에 잠재적으로 재사용 가능한 구성 세그먼트를 저장할 수 있습니다. 구성 세그먼트/블록을 재사용 가능하게 만들 수 있기 때문에 프로덕션 환경에서 많은 시간을 절약할 수 있습니다.

서버 로그

Nginx는 이벤트/활동을 기록하고 이를 로그 파일에 저장합니다. /var/log/nginx 예배 규칙서. Nginx는 다음 파일에 활동을 기록합니다.

  • /var/log/nginx/access.log: 이 파일은 Nginx 서버에 액세스한 클라이언트를 기록합니다. 세부 정보에는 클라이언트의 IP 주소, 시간 및 날짜, 서버 및 OS에 액세스하는 데 사용되는 브라우저가 포함됩니다.
  • /var/log/nginx/error.log: 이 파일은 실행 중 Nginx 서버에서 발생한 오류를 기록합니다.

따라서 이 섹션에서는 시작하기에 충분한 중요한 Nginx 파일 및 디렉터리 중 일부를 간략하게 살펴보았습니다.

서버 블록 설정

이제 Nginx 파일과 서버에 대한 몇 가지 기본 지식이 있으므로 자체 서버 블록을 설정할 준비가 되었습니다. 서버 블록은 Apache 가상 호스트와 유사합니다.

서버 블록을 만드는 방법과 사용하는 방법을 살펴보겠습니다. example.com 생성 과정에서 도메인으로.

💡 교체 example.com 귀하의 도메인 이름으로.

서버 블록 구성을 시작하기 전에 웹 사이트 콘텐츠의 루트 디렉터리로 사용할 디렉터리를 만들어야 합니다. 만들자 /var/www/example.com/html 사용하는 도메인의 디렉토리 mkdir 명령.

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

그만큼 -피 옵션은 필요한 모든 상위 디렉토리를 생성합니다. 즉, 생성합니다 example.com 상위 디렉토리 HTML 존재하지 않는 경우.

다음을 사용하여 디렉토리 소유권 변경 $USER 환경 변수:

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

다음으로 간단한 index.html 구성 중인 도메인을 방문할 때 액세스할 파일입니다. 이것은 단지 설명을 위한 것입니다.

나노 /var/www/example.com/html/index.html

서버에서 방금 생성한 파일에 다음 내용을 붙여넣습니다.

  example.com에 오신 것을 환영합니다! 

에야디야! example.com에 액세스할 수 있습니다!

누르다 Ctrl+O 작성하고 저장하기 위해 index.html 파일을 누른 다음 Ctrl+X 나가기 위해서 나노 편집자.

이제 마지막으로 Nginx가 서비스를 제공할 수 있도록 서버 블록을 생성할 수 있습니다. index.html 어떤 사용자가 갈 때 example.com. 따라서 서버 블록을 생성하려면 다음과 같은 구성 파일을 만들어야 합니다. example.com ~에 사용 가능한 사이트 예배 규칙서. 이를 위해 nano를 사용하고 다음을 실행합니다.

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

그런 다음 다음 구성을 입력하거나 복사/붙여넣기합니다. 그런 다음 Ctrl+O 쓰기 및 저장을 입력합니다. 마찬가지로 Ctrl+X 나노 편집기를 닫습니다.

서버 { 수신 80; 듣기 [::]:80; server_name example.com www.example.com; 루트 /var/www/example-domain.com/html; 인덱스 index.html; 위치 / { try_files $uri $uri/ =404; } }

위의 구성은 기본 서버 블록 구성과 유사하며 변경되었습니다. 뿌리 새 루트 디렉토리를 가리키도록 명령문을 변경하고 서버 이름 우리의 도메인 이름에. 동안 위치{} 문은 파일을 찾을 수 없는 경우 오류 catch 문 역할을 하고 클라이언트에 오류 404를 표시합니다.

다음으로 Nginx가 서비스를 제공할 수 있도록 서버 블록을 활성화할 수 있습니다. example.com 웹페이지. 서버 블록을 활성화하려면 심볼릭 링크를 생성해야 합니다. example.com 파일에서 사용 가능한 사이트 에게 사이트 사용 가능 예배 규칙서. 이렇게 하려면 다음을 실행합니다.

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

에 링크가 생성됩니다. 사이트 사용 가능 디렉토리와 지금 example.com 활성화해야 합니다. 이제 Nginx 서버에서 두 개의 서버 블록이 활성화되어 다음을 기반으로 요청에 응답합니다. 듣다 그리고 서버 이름 에 저장된 지시문 example.com 서버 블록 구성.

모든 구성 파일이 올바르고 구문 오류가 없는지 확인하려면 다음을 실행합니다.

sudo nginx -t

이제 마지막으로 Nginx를 다시 시작하여 다음 명령을 실행하여 변경 사항을 적용합니다.

sudo systemctl nginx 재시작

Nginx는 이제 서버 블록을 제공하기 시작합니다. 다음으로 이동할 수 있습니다. //귀하의 도메인 이름 웹페이지를 실시간으로 확인하세요.

메모: 위 섹션이 작동하려면 고유한 도메인을 설정하고 example.com 자신의 도메인 이름으로. 또한 도메인이 Nginx 서버의 IP 주소를 가리키도록 DNS를 구성해야 합니다.

결론적으로 Nginx를 설치하고 구성하는 방법을 살펴보았습니다. ufw Nginx 서버에 대한 원격 액세스를 허용하기 위해 원격으로 Nginx에 연결하고 몇 가지 기본 Nginx 파일 및 디렉토리에 익숙해지고 서버 블록을 설정하는 방법을 배웠습니다.

Nginx에 대해 알고 더 배우려면 Nginx wiki를 참조하십시오.