Nginx 웹서버 설치(ubuntu)

1. Nginx 웹서버 Vs Apache 웹서버

여기서는 Nginx 웹서버 설치를 진행합니다. 리눅스에서 설치되는 웹 서버는 Nginx 웹서버와 apache 웹서버로 나눠지며 다음과 같은 차이점을 갖고 있습니다. 아파치는 오픈 소스 HTTP 서버인 반면 Nginx는 오픈 소스, 고성능 비동기 웹 서버 및 역방향 프록시 서버입니다.

아파치 HTTP 서버의 개발 및 발전은 전 세계 사용자 커뮤니티(Apache Software Foundation)에서 관리 및 유지되지만 Nginx는 2011년에 설립된 동일한 이름의 회사에서 유지 및 관리 됩니다.

Apache는 클라이언트 요청 및 웹 트래픽을 처리하는 다양한 다중 처리 모듈을 제공하지만 Nginx는 최소한의 하드웨어 리소스로 여러 클라이언트 요청을 동시에 처리하도록 설계되었습니다.

아파치에서 단일 스레드는 하나의 연결과 연결되지만 Nginx의 단일 스레드는 여러 연결을 처리할 수 있다. 이 프로세스는 메모리를 적게 소모하여 성능이 향상시킵니다.

아파치 HTTP Server에는 확장성이 없는 다중 스레드 아키텍처지만 Nginx는 여러 클라이언트 요청을 처리하기 위한 비동기 이벤트 기반 접근 방식을 따릅니다.

아파치 서버는 기존의 메서드를 사용하여 정적 콘텐츠를 제공하고 웹 서버 자체 내에서 기본적으로 동적 콘텐츠를 처리한다. 반면 Nginx는 동적 콘텐츠를 내부적으로 처리할 수 없고 위해 외부 프로세스에 의존합니다.

2. Nginx 웹서버 설치

apt update와 apt upgrade로 패키지 정보를 업데이트 합니다. list 옵션으로 nginx와 관련된 패키지를 확인합니다. nginx 설치 명령어로 nginx 웹서버를 설치합니다.

  • nginx 관련 패키지 정보를 출력하는 명령어입니다.
sudo apt list nginx*
nginx ubuntu
[Step 1] 패키지 정보 확인
  • nginx 설치를 위한 명령어를 실행합니다.
sudo apt install nginx
nginx ubuntu
[Step 2] nginx install
  • 설치된 nginx의 버전을 확인합니다.
sudo nginx -v
nginx ubuntu
[Step 3] nginx 버전 확인
  • nginx 서비스의 상태를 확인합니다.
sudo systemctl status nginx
nginx ubuntu
[Step 4] 패키지 정보 확인

2. 외부 접속을 위한 포트 설정

웹서버가 설치되었다고 바로 접속이 가능한 것은 아닙니다. ubuntu가 설치된 환경은 호스트 컴퓨터의 가상 서버로 구성되어 있고 ubuntu 서버는 iptables로 방화벽이 서비스되고 있습니다.

첫 번째 단계는 ubuntu 서버의 포트를 개방하는 것입니다. iptables에 대한 이해가 필요하다면 다음 글을 통해서 확인할 수 있습니다.

1) nginx http 포트 허용

http 포트는 80을 사용합니다. iptables에서 tcp 80번 포트를 사용하도록 열어주고 iptables에 체인이 등록되었는지 규칙을 출력합니다.

  • -A : 체인에 추가
  • -p tcp : 프로토콜 tcp
  • -m tcp : tcp 일치, 확장일치
  • –dport : 포트번호
  • — j : 대상 점프
  • ACCEPT : 허용
sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
sudo iptables -S
iptables
[Step 1] iptables에 80번 포트 추가

추가된 규칙을 저장하고 Reload 합니다.

sudo netfilter-persistent save
sudo netfilter-persistent reload
iptables
[Step 2] iptables 저장 및 reload

2) VirtualBox 포트 추가

VirtualBox에 포트를 추가해야 호스트 컴퓨터의 IP 또는 localhost(127.0.0.1)에서 접속이 가능합니다. 그리고 공유기를 사용하고 있다면 공유기의 DMZ기능이나 공유기 포트 포워딩 기능을 사용하면 외부에서도 접속이 가능합니다. 여기서는 공유기의 DMZ 설정에 대해서는 다루지 않습니다.

VirtualBox의 상세한 절차를 알고 싶다면 아래 링크를 클릭해서 확인할 수 있습니다.

아래 이미지와 같이 80번 포트에 대한 포워딩을 추가합니다.

virtualbox 80 port
[Step 3] VirtualBox 80번 포트 포워딩

3. Nginx 웹서버 접속 확인

포트 개방이 완료되고 호스트 컴퓨터의 인터넷 브라우저를 통해 ubuntu 서버의 nginx 웹서버에 접속합니다.

  • localhost 접속(127.0.0.1)
nginx
[Step 1] 127.0.0.1
nginx
[Step 2] http://localhost
  • 호스트 컴퓨터의 내부 IP로 접속
nginx
[Step 2] http://localhost
  • 외부IP로 접속
nginx
[Step 2] http://220.xxx.xxx.xxx