Ubuntu 20.04에서 Nginx를 설치하고 웹 서버로 설정하는 방법을 알려드리겠습니다.
이 포스팅은 Nginx를 처음 사용하거나 웹 서버 환경을 구성하는 데 익숙하지 않은 사용자도 쉽게 따라할 수 있도록
상세히 설명하는 것에 초점을 두었습니다.
다른 개발환경 세팅에 대해 궁금하시다면 아래 포스팅을 같이 참고해주세요
✅ 개발환경 세팅 정리
[ SpringBoot ] Visual Studio Code 에서 스프링부트 개발환경 세팅
# 1. Nginx 란?
Nginx 란?
Nginx는 HTTP 및 Reverse Proxy 기능을 제공하는 고성능 웹 서버입니다. 많은 웹사이트에서 성능과 안정성을 이유로 Apache보다 Nginx를 선호하고 있으며, 정적 콘텐츠 제공 속도가 빠르고 확장성이 뛰어납니다.
# 2. Nginx 설치하기
ubuntu 에서 설치
우분투 20.04에서 Nginx를 설치하는 과정은 매우 간단합니다. 다음의 단계로 진행해보세요.
2.1. 시스템 업데이
먼저, 설치를 시작하기 전에 패키지 관리자를 업데이트하여 최신 상태로 만들어줍니다. 터미널을 열고 다음 명령어를 입력하세요.
sudo apt update
sudo apt upgrade -y
이렇게 하면 시스템에 있는 패키지가 모두 최신 상태로 유지됩니다.
2.2. Nginx 설치
Nginx를 설치하려면 다음 명령어를 사용하세요.
sudo apt install nginx -y
위 명령어를 입력하면, 우분투 패키지 저장소에서 Nginx가 다운로드 및 설치됩니다.
# 3.Nginx 서비스 관리
설치가 완료되었으면, Nginx가 제대로 작동하는지 확인해야 합니다.
3.1. 서비스 시작 및 상태 확인
다음 명령어로 Nginx 서비스를 시작하고 상태를 확인할 수 있습니다.
sudo systemctl start nginx
sudo systemctl status nginx
systemctl status nginx 명령어를 입력하면 Nginx가 정상적으로 실행 중인지 확인할 수 있습니다.
출력 결과에 "active (running)" 이라고 나오면 서비스가 잘 실행 중이라는 의미입니다.
3.2. 자동 시작 설정
서버가 부팅될 때마다 Nginx가 자동으로 시작되도록 설정하려면 다음 명령어를 입력하세요.
sudo systemctl enable nginx
# 4.방화벽 설정
ubuntu 의 기본 방화벽인 UFW를 사용하여 HTTP와 HTTPS 트래픽을 허용해야 합니다.
4.1. UFW 방화벽 규칙 설정
다음 명령어로 방화벽을 설정하여 Nginx의 HTTP 및 HTTPS 트래픽을 허용합니다.
sudo ufw allow 'Nginx Full'
설정이 완료된 후 방화벽 상태를 확인하려면 다음 명령어를 사용하세요.
sudo ufw status
Nginx Full이 허용되어 있는지 확인하세요.
# 5. Nginx 기본 페이지 확인
Nginx가 정상적으로 설치되었다면, 이제 브라우저에서 기본 페이지를 확인할 수 있습니다. 서버의 IP 주소로 접속해보세요.
- 웹 브라우저를 열고, 다음 URL을 입력합니다: http://<서버의 IP 주소>
만약 Nginx가 정상적으로 작동 중이라면, "Welcome to Nginx!"라는 기본 환영 페이지를 볼 수 있을 것입니다.
만약
# 6. Nginx 설정 파일
Nginx의 주요 설정 파일은 /etc/nginx/nginx.conf에 있습니다. 이 파일을 수정하여 서버의 동작을 사용자 필요에 맞게 변경할 수 있습니다.
6.1 설정 파일 편집
설정 파일을 편집하려면 다음 명령어를 사용하세요.
sudo nano /etc/nginx/nginx.conf
파일을 수정한 후 저장하고 종료하면 됩니다. 변경 사항을 적용하려면 Nginx를 다시 로드해야 합니다.
sudo systemctl reload nginx
# 7. Nginx 서버 블록 설정 (가상 호스트)
서버 블록은 Apache의 가상 호스트와 유사한 개념으로, 여러 도메인 이름을 같은 서버에서 처리할 수 있게 해줍니다.
7.1. 기본 서버 블록 설정
기본 서버 블록 설정 파일은 /etc/nginx/sites-available/default에 있습니다. 이 파일을 편집하여 도메인 및 루트 디렉터리를 설정할 수 있습니다.
sudo nano /etc/nginx/sites-available/default
여기에서 서버 이름, 루트 디렉터리, 인덱스 파일 등을 설정할 수 있습니다. 수정이 완료되면 다시 한 번 Nginx를 리로드하세요.
sudo systemctl reload nginx
# 8. Nginx 설치 후 기본 보안 설정
서버의 보안을 강화하기 위해 기본적인 보안 설정을 적용하는 것이 좋습니다.
8.1 디렉터리 목록 표시 방지
Nginx는 기본적으로 디렉터리의 파일 목록을 표시할 수 있습니다. 이를 방지하려면 설정 파일에서 autoindex 옵션을 꺼야 합니다.
location / {
autoindex off;
}
이 설정을 통해 서버에서 디렉터리 파일 목록이 노출되지 않도록 막을 수 있습니다.