웹사이트 검색

Ubuntu 20.04에 Nginx 웹 서버를 설치하는 방법


Nginx는 프로덕션 환경에서 엄청난 시장 점유율을 차지하고 있는 오픈소스 고성능 웹 서버입니다. 트래픽이 많은 웹사이트를 호스팅하는 데 주로 사용되는 가볍고 강력한 웹 서버입니다.

관련 읽기: Ubuntu 20.04에 Apache 웹 서버를 설치하는 방법

이 가이드에서는 Ubuntu 20.04 LTS에서 Nginx 웹 서버를 설치하고 Nginx 서버 블록(가상 호스트)을 구성하는 방법을 알아봅니다.

전제 조건

시작하려면 SSH 액세스 권한이 있는 Ubuntu 20.04 LTS 인스턴스와 루트 권한이 있는 Sudo 사용자가 있는지 확인하십시오. 또한 Nginx 패키지를 설치하려면 안정적인 인터넷 연결을 권장합니다.

Ubuntu 20.04에 Nginx 설치

1. Nginx를 설치하기 전에 서버의 패키지 목록을 업데이트하세요.

sudo apt update

2. 그런 다음 다음 명령을 실행하여 Nginx를 설치합니다.

sudo apt install nginx

계속할지 묻는 메시지가 나타나면 키보드에서 'Y'를 누르고 ENTER를 누르세요. 단 몇 초만에 설치가 완료됩니다.

3. Nginx가 성공적으로 설치되면 다음을 실행하여 시작하고 확인할 수 있습니다.

sudo systemctl start nginx
sudo systemctl status nginx

위의 출력은 Nginx가 실행 중임을 명확하게 나타냅니다.

4. Nginx 버전을 확인하려면 다음을 실행하세요.

sudo dpkg -l nginx

출력 결과는 이 기사를 작성할 당시 최신 버전인 Nginx 1.17.10을 실행하고 있음을 나타냅니다.

UFW 방화벽에서 Nginx 포트 열기

이제 예상대로 Nginx를 설치하고 실행했으므로 웹 브라우저를 통해 Nginx에 액세스하려면 몇 가지 조정이 필요합니다. UFW 방화벽을 실행 중인 경우 Nginx 애플리케이션 프로필을 허용해야 합니다.

ufw 방화벽과 관련된 3개의 Nginx 프로필이 있습니다.

  1. Nginx Full – 포트 80443(SSL/TLS 암호화의 경우)을 모두 엽니다.
  2. Nginx HTTP – 이 개방형 전용 포트 80(암호화되지 않은 웹 트래픽용).
  3. Nginx HTTPS443 포트만 엽니다(SSL/TLS 암호화의 경우).

5. Ubuntu 20.04에서 방화벽을 활성화하여 시작하세요.


sudo ufw enable

6. 지금은 암호화된 서버가 아니기 때문에 80 포트에서 트래픽을 허용하는 Nginx HTTP 프로필만 허용합니다. .

sudo ufw allow 'Nginx HTTP'

7. 그런 다음 변경 사항을 유지하려면 방화벽을 다시 로드하세요.

sudo ufw reload

8. 이제 방화벽 상태를 확인하여 허용된 프로필을 확인하세요.

sudo ufw status

Ubuntu 20.04에서 Nginx 테스트

Nginx는 웹 서버에서 예상하는 대로 브라우저에서 실행되며 예상대로 실행되는지 테스트하는 가장 확실한 방법은 브라우저를 통해 요청을 보내는 것입니다.

9. 브라우저로 가서 서버의 IP 주소나 도메인 이름을 찾아보세요. 서버의 IP를 확인하려면 ifconfig 명령을 실행하십시오.

ifconfig

10. 클라우드 서버를 사용하는 경우 아래의 컬 명령을 실행하여 서버의 공인 IP를 검색하세요.

curl ifconfig.me

11. 브라우저의 URL 입력란에 서버의 IP 주소나 도메인 이름을 입력하고 ENTER를 누르세요.

http://server-IP or domain-name

표시된 대로 기본 Nginx 환영 페이지가 표시됩니다.

Ubuntu 20.04에서 Nginx 프로세스 관리

12. Nginx 웹 서버를 중지하려면 다음을 실행하세요.

sudo systemctl stop nginx

13. 웹서버를 다시 시작하려면 다음을 실행하세요.

sudo systemctl start nginx

14. 부팅 또는 재부팅 시 Nginx를 자동으로 시작하려면 다음을 실행하세요.

sudo systemctl enable nginx

15. 특히 구성 파일을 변경한 후 웹서버를 다시 시작하려면 다음을 실행하세요.

sudo systemctl restart nginx

16. 또는 그림과 같이 연결이 끊어지지 않도록 새로고침할 수도 있습니다.

sudo systemctl reload nginx

Ubuntu 20.04에서 Nginx 서버 블록 구성

서버에서 두 개 이상의 사이트를 호스팅할 계획이라면 Nginx 서버 블록을 설정하는 것이 좋습니다. 서버 블록은 Apache의 가상 호스트와 동일합니다.

기본적으로 Nginx/var/www/html 경로에서 웹 콘텐츠를 제공하도록 설정된 기본 서버 블록과 함께 제공됩니다.

도메인 콘텐츠를 제공하기 위해 별도의 Nginx 블록을 만들 예정입니다. 이 가이드에서는 crazytechgeek.info 도메인을 사용하겠습니다.
귀하의 경우에는 이를 자신의 도메인 이름으로 바꾸십시오.

17. 서버 블록 파일을 생성하려면 먼저 그림과 같이 도메인에 대한 디렉터리를 생성합니다.

sudo mkdir -p /var/www/crazytechgeek.info/html

18. 다음으로 $USER 변수를 사용하여 새 디렉토리에 소유권을 할당합니다.

sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html

19. 또한 소유자에게 모든 권한(읽기, 쓰기 및 실행)을 부여하고 다른 당사자에게는 읽기 및 실행 권한만 부여하도록 디렉토리 권한을 할당해야 합니다.

sudo chmod -R 755 /var/www/crazytechgeek.info

20. 도메인 디렉토리 내부에 도메인의 웹 콘텐츠를 포함할 index.html 파일을 만듭니다.

sudo vim /var/www/crazytechgeek.info/html/index.html

아래 내용을 샘플 테스트 파일에 붙여넣으세요.

<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
        <h1>Bravo! Your server block is working as expected!</h1>
    </body>
</html>

변경 사항을 저장하고 파일을 종료합니다.

21. Nginx 웹서버가 방금 추가한 콘텐츠를 제공하려면 적절한 지시문을 사용하여 서버 블록을 만들어야 합니다. 이 경우 다음 위치에 새 서버 블록을 만들었습니다.

sudo vim /etc/nginx/sites-available/crazytechgeek.info

표시된 구성을 붙여넣습니다.

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

        root /var/www/crazytechgeek.info/html;
        index index.html index.htm index.nginx-debian.html;

        server_name crazytechgeek.info  www.crazytechgeek.info;

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

저장 및 종료.

22. 이제 Nginx 서버가 시작 시 읽는 sites-enabled 디렉토리에 연결하여 서버 블록 파일을 활성화합니다.

sudo ln -s /etc/nginx/sites-available/crazytechgeek.info /etc/nginx/sites-enabled/

23. 변경 사항을 적용하려면 Nginx 웹 서버를 다시 시작하세요.

sudo systemctl restart nginx

24. 모든 구성이 올바른지 확인하려면 다음 명령을 실행하세요.

nginx -t

모든 구성이 올바른 경우 아래와 같은 출력이 표시됩니다.

25. 이제 Nginx 웹 서버가 도메인의 콘텐츠를 제공해야 합니다. 다시 한 번 브라우저로 가서 서버의 도메인을 찾아보세요.

http://domain-name

도메인 디렉토리의 사용자 정의 콘텐츠가 표시된 대로 제공됩니다.

중요한 Nginx 구성 파일

마무리하기 전에 Nginx와 관련된 중요한 구성 파일 중 일부를 검토하는 것이 중요합니다.

Nginx 구성 파일

  • /etc/nginx/nginx.conf: 기본 구성 파일입니다. 서버 요구 사항에 맞게 설정을 수정할 수 있습니다.
  • /etc/nginx/sites-available: 서버 블록 구성을 저장하는 디렉터리입니다. Nginx는 사이트 지원 디렉터리에 연결된 경우에만 서버 블록을 사용합니다.
  • /etc/nginx/sites-enabled: 디렉토리에는 이미 활성화된 사이트별 Nginx 서버 블록이 포함되어 있습니다.

Nginx 로그 파일

Nginx 웹 서버 문제를 해결하는 데 사용할 수 있는 두 가지 기본 로그 파일이 있습니다.

  • /var/log/nginx/access.log: 웹 서버에 대한 모든 요청을 기록합니다.
  • /var/log/nginx/error.log: 이는 오류 로그 파일이며 Nginx에서 발생하는 모든 오류를 기록합니다.
결론

이 튜토리얼이 끝났습니다. Ubuntu 20.04Nginx를 설치하는 방법과 도메인 콘텐츠를 제공하기 위해 Nginx 서버 블록을 설정하는 방법을 살펴보았습니다. 귀하의 의견을 환영합니다.