웹사이트 검색

Ubuntu 16.04에 Nginx를 설치하는 방법


소개

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

이 가이드에서는 Ubuntu 16.04 서버에 Nginx를 설치하는 방법에 대해 설명합니다.

전제 조건

이 가이드를 시작하기 전에 서버에 구성된 sudo 권한이 있는 루트가 아닌 일반 사용자가 있어야 합니다. Ubuntu 16.04용 초기 서버 설정 가이드에 따라 일반 사용자 계정을 구성하는 방법을 배울 수 있습니다.

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

1단계: Nginx 설치

Nginx는 Ubuntu의 기본 리포지토리에서 사용할 수 있으므로 설치가 다소 간단합니다.

이 세션에서 apt 패키징 시스템과의 첫 번째 상호 작용이므로 가장 최근 패키지 목록에 액세스할 수 있도록 로컬 패키지 인덱스를 업데이트합니다. 그런 다음 nginx를 설치할 수 있습니다.

  1. sudo apt-get update
  2. sudo apt-get install nginx

절차를 수락한 후 apt-get은 Nginx 및 필요한 모든 종속성을 서버에 설치합니다.

2단계: 방화벽 조정

Nginx를 테스트하기 전에 서비스에 대한 액세스를 허용하도록 방화벽 소프트웨어를 재구성해야 합니다. Nginx는 설치 시 방화벽인 ufw에 서비스로 등록됩니다. 이렇게 하면 Nginx 액세스를 쉽게 허용할 수 있습니다.

다음을 입력하여 ufw가 작업 방법을 알고 있는 애플리케이션 구성을 나열할 수 있습니다.

  1. sudo ufw app list

애플리케이션 프로필 목록을 가져와야 합니다.

Output
Available applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH

보시다시피 Nginx에 사용할 수 있는 세 가지 프로필이 있습니다.

  • Nginx Full: 이 프로필은 포트 80(일반, 암호화되지 않은 웹 트래픽)과 포트 443(TLS/SSL 암호화된 트래픽)을 모두 엽니다.
  • Nginx HTTP: 이 프로필은 포트 80만 엽니다(일반, 암호화되지 않은 웹 트래픽)
  • Nginx HTTPS: 이 프로필은 포트 443(TLS/SSL 암호화 트래픽)만 엽니다.

구성한 트래픽을 계속 허용하는 가장 제한적인 프로필을 활성화하는 것이 좋습니다. 아직 서버에 SSL을 구성하지 않았기 때문에 이 가이드에서는 포트 80의 트래픽만 허용하면 됩니다.

다음을 입력하여 활성화할 수 있습니다.

  1. sudo ufw allow 'Nginx HTTP'

다음을 입력하여 변경 사항을 확인할 수 있습니다.

  1. sudo ufw status

표시된 출력에 허용된 HTTP 트래픽이 표시되어야 합니다.

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단계: 웹 서버 확인

설치 프로세스가 끝나면 Ubuntu 16.04가 Nginx를 시작합니다. 웹 서버는 이미 실행 중이어야 합니다.

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 Mon 2016-04-18 16:14:00 EDT; 4min 2s ago Main PID: 12857 (nginx) CGroup: /system.slice/nginx.service ├─12857 nginx: master process /usr/sbin/nginx -g daemon on; master_process on └─12858 nginx: worker process

위에서 볼 수 있듯이 서비스가 성공적으로 시작된 것 같습니다. 그러나 이를 테스트하는 가장 좋은 방법은 실제로 Nginx에서 페이지를 요청하는 것입니다.

기본 Nginx 랜딩 페이지에 액세스하여 소프트웨어가 제대로 실행되고 있는지 확인할 수 있습니다. 서버의 도메인 이름 또는 IP 주소를 통해 여기에 액세스할 수 있습니다.

서버에 설정된 도메인 이름이 없는 경우 여기에서 DigitalOcean으로 도메인을 설정하는 방법을 알아볼 수 있습니다.

서버에 대한 도메인 이름을 설정하지 않으려면 서버의 공용 IP 주소를 사용할 수 있습니다. 서버의 IP 주소를 모르는 경우 명령줄에서 몇 가지 다른 방법으로 가져올 수 있습니다.

서버의 명령 프롬프트에 다음을 입력해 보십시오.

  1. ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

당신은 몇 줄을 다시 얻을 것이다. 웹 브라우저에서 각각 시도하여 작동하는지 확인할 수 있습니다.

대안은 다음을 입력하는 것입니다. 그러면 인터넷의 다른 위치에서 볼 수 있는 공용 IP 주소가 제공됩니다.

  1. sudo apt-get install curl
  2. curl -4 icanhazip.com

서버의 IP 주소 또는 도메인이 있으면 브라우저의 주소 표시줄에 입력하십시오.

http://server_domain_or_IP

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

이 페이지는 서버가 올바르게 실행되고 있음을 보여주기 위해 Nginx에 포함되어 있습니다.

4단계: Nginx 프로세스 관리

이제 웹 서버를 가동하고 실행 중이므로 몇 가지 기본 관리 명령을 검토할 수 있습니다.

웹 서버를 중지하려면 다음을 입력하십시오.

  1. sudo systemctl stop nginx

중지된 웹 서버를 시작하려면 다음을 입력하십시오.

  1. sudo systemctl start nginx

서비스를 중지했다가 다시 시작하려면 다음을 입력합니다.

  1. sudo systemctl restart nginx

단순히 구성을 변경하는 경우 Nginx는 종종 연결을 끊지 않고 다시 로드할 수 있습니다. 이를 위해 다음 명령을 사용할 수 있습니다.

  1. sudo systemctl reload nginx

기본적으로 Nginx는 서버 부팅 시 자동으로 시작되도록 구성되어 있습니다. 이것이 원하는 것이 아닌 경우 다음을 입력하여 이 동작을 비활성화할 수 있습니다.

  1. sudo systemctl disable nginx

서비스가 부팅 시 시작되도록 다시 활성화하려면 다음을 입력하십시오.

  1. sudo systemctl enable nginx

5단계: 중요한 Nginx 파일 및 디렉터리에 익숙해지기

이제 서비스 자체를 관리하는 방법을 알았으므로 몇 분 동안 몇 가지 중요한 디렉터리 및 파일에 익숙해져야 합니다.

콘텐츠

  • /var/www/html: 기본적으로 이전에 본 기본 Nginx 페이지로만 구성된 실제 웹 콘텐츠는 /var/www/html에서 제공됩니다. 디렉토리. 이것은 Nginx 구성 파일을 변경하여 변경할 수 있습니다.

서버 구성

  • /etc/nginx: Nginx 구성 디렉토리. 모든 Nginx 구성 파일이 여기에 있습니다.
  • /etc/nginx/nginx.conf: 기본 Nginx 구성 파일입니다. 이것은 Nginx 전역 구성을 변경하도록 수정할 수 있습니다.
  • /etc/nginx/sites-available/: 사이트별 "서버 블록\을 저장할 수 있는 디렉토리입니다. Nginx는 링크되지 않는 한 이 디렉토리에 있는 구성 파일을 사용하지 않습니다. sites-enabled 디렉토리로 이동합니다(아래 참조). 일반적으로 모든 서버 블록 구성은 이 디렉토리에서 수행된 다음 다른 디렉토리에 연결하여 활성화됩니다.
  • /etc/nginx/sites-enabled/: 활성화된 사이트별 "서버 블록\이 저장되는 디렉토리입니다. 일반적으로 이들은 sites-available 디렉토리.
  • /etc/nginx/snippets: 이 디렉토리에는 Nginx 구성의 다른 위치에 포함될 수 있는 구성 조각이 포함되어 있습니다. 잠재적으로 반복 가능한 구성 세그먼트는 스니펫으로 리팩터링하기에 좋은 후보입니다.

서버 로그

  • /var/log/nginx/access.log: 웹 서버에 대한 모든 요청은 Nginx가 다르게 구성되지 않는 한 이 로그 파일에 기록됩니다.
  • /var/log/nginx/error.log: 모든 Nginx 오류가 이 로그에 기록됩니다.

결론

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

Ubuntu 16.04에서 LEMP 스택을 구성하는 방법을 알아봅니다.