본문 바로가기
IT

AWS 우분투 - Nginx 웹서버 설치

by SOGNOD 2024. 8. 12.
반응형

NGINX 웹서버

AWS 우분투 서버에서 Nginx 웹서버를 설치 하고 도메인 까지 연결 합니다. 여러 도메인을 구성하여 여러 웹사이트를 단일 서버에서 호스팅할 까지 구축해 봅니다. 각 도메인은 별도의 서버 블록(server block)으로 설정합니다.

 

1. Nginx 설치 및 업데이트

먼저 Nginx가 설치되어 있는지 확인하고 최신 버전으로 업데이트합니다.

~$ sudo apt update
~$ sudo apt install nginx

 

위 설치 작업 웹 브라우저를 통해 서버에 접속해 봅니다.

 

2. 도메인별 서버 블록 설정

Nginx에서 도메인별 서버 블록을 설정하려면, 각각의 도메인에 대해 별도의 설정 파일을 만듭니다.

 

서버 블록 파일 생성

Nginx의 서버 블록 설정 파일은 /etc/nginx/sites-available/ 디렉토리에 저장되며, 이 파일을 /etc/nginx/sites-enabled/ 디렉토리에 심볼릭 링크를 만들어 활성화합니다.

예를 들어 domain1.co.kr과 domain2.co.kr.com 도메인을 설정하는 경우

첫번째 도메인 domain1.co.kr 에 대한 서버 블록 파일을 생성 합니다.

sudo nano /etc/nginx/sites-available/domain1.co.kr

다음 내용을 등록 후 저장 합니다.

server {
    listen 80;
    server_name domain1.co.kr http://www.domain1.co.kr;

    root /var/www/domain1;
    index index.html index.htm index.php;

    location / {
        try_files $uri $uri/ =404;
    }
}
# 위 코드는 PHP 설치 시 수정될 예정 입니다.

다음 두번째 도메인 domain2.co.kr 의 서버 블록 파일을 생성 합니다.

sudo nano /etc/nginx/sites-available/domain2.co.kr

다음 내용을 등록 후 저장 합니다.

server {
    listen 81;
    server_name domain2.co.kr http://www.domain2.co.kr;

    root /var/www/domain2;
    index index.html index.htm index.php;

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

 

사이트 활성화

설정이 완료되면, sites-available 디렉토리에서 sites-enabled 디렉토리로 심볼릭 링크를 생성하여 사이트를 활성화합니다

sudo ln -s /etc/nginx/sites-available/domain1.co.kr /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/domain2.co.kr /etc/nginx/sites-enabled/

 

웹 루트 디렉토리 생성 및 인덱스 파일 추가

각 도메인에 대한 웹 루트 디렉토리를 생성하고 기본 index.html 파일을 추가합니다.

sudo mkdir -p /var/www/domain1
sudo mkdir -p /var/www/domain2

echo '<h1>Domain1 웹 서버</h1>' | sudo tee /var/www/domain1/index.html
echo '<h1>Domain2 웹 서버</h1>' | sudo tee /var/www/domain2/index.html

 

Nginx 설정 테스트 및 재시작

Nginx 설정 파일에 오류가 없는지 확인하고 서버를 재시작합니다.

sudo nginx -t
sudo systemctl restart nginx

 

웹 폴더에 홈페이지 소스 복사

도메인 웹 루트에 소스파일 복사 후 압축 해제 합니다.

cd /var/www/domain1
sudo unzip file.zip ... file.tar.gz 등등?

 

권한 설정

압축 해제 후 파일 및 폴더의 권한이 올바르게 설정되었는지 확인합니다. 웹 서버가 해당 파일에 접근할 수 있어야 합니다. 기본적으로 웹 서버는 www-data 사용자와 그룹을 사용하므로, 필요한 경우 권한을 설정합니다:

sudo chown -R www-data:www-data /var/www/domain1

 

3. DNS 설정

각 도메인의 DNS 레코드를 설정하여 Nginx 서버의 공인 IP 주소로 포인팅합니다. DNS 설정은 도메인 등록 기관에서 관리합니다.

A 레코드를 설정하여 도메인 이름을 서버의 공인 IP 주소로 포인팅합니다.

 

Cafe24 에서 도메인을 관리하는 경우

DNS 관리 메뉴 선택 >> 대상 도메인 선택 >> 본문 상단에 있는 DNS 관리 버튼 선택 합니다.

 

선택한 도메인이 새로 추가한 서버를 바라보도록 A 레코드 IP 를 새로 추가한 서버 IP 로 등록 합니다.

반응형