ABOUT ME

작은 디테일에 집착하는 개발자

Today
-
Yesterday
-
Total
-
  • [Linux] 서버와 root(sudo), 웹 서버와 도메인 설치
    네이버클라우드 캠프 | BE/Linux 기초 2023. 5. 1. 15:57
    728x90

     

    1. 서버 생성 및 *root(sudo) 권한 부여하는 이유

    리눅스에서 서버를 생성하고, 기본 생성자에게 root 권한을 부여하는 것은 서버 운영을 위해 필요한 과정입니다.

     

    시스템 전체를 관리할 수 있는 최상위 관리자 계정인 root는 서버 관리에 필수적이지만

    보안상 위험하며 시스템이 손상될 위험도가 높기 때문에 기본적으로 리눅스 서버는 root 권한을 생성하지 않습니다.

     

    따라서, root 권한을 임시적으로 부여받아 sudo 명령을 실행할 수 있는 특정(일반) 사용자 계정을 생성하여 사용해야 합니다.

    이를 통해 시스템의 보안을 유지하며 특정 사용자가 시스템을 관리하도록 하며 서버 운영을 도울 수 있습니다.

    root 최상위 관리자 계정, 시스템 전체에 대한 완전한 액세스 권한 보유
    sudo 임시적으로 root 권한을 부여받아 작업 수행 (권한을 빌려 사용)

     

    2. 웹 서버 설치 및 도메인 연결하는 이유

    웹 서버를 설치하고 도메인에 연결하는 것은 인터넷을 통해 서버(웹 사이트)에 접근할 수 있도록 하기 위한 작업입니다.

    웹 서버를 설치하면 해당 서버에 웹 페이지를 *호스팅 할 수 있습니다.

    웹 서버는 *HTTP 프로토콜을 사용하여 클라이언트(웹 브라우저)의 요청을 처리하고 요청에 따라 웹 페이지를 반환합니다.

     

    도메인을 연결하는 이유는 서버의 IP 주소를 통해 접근할 수 있지만 일반적으로 IP 주소는 기억하기 어렵기 때문에,

    기억하기 쉽고 사용하기 편리한 도메인 이름(인터넷 주소)을 이용하여 해당 서버에 쉽게 접속할 수 있습니다.

     

    또한 도메인 이름에 따라 여러 개의 웹 사이트를 호스팅할 수 있는데, 웹 서버의 *가상 호스팅 기능을 통해

    한 대의 웹 서버로 여러 개의 웹 사이트를 운영할 수 있기도 합니다.

    호스팅 인터넷 상에서 웹 사이트를 운영하기 위해 필요한 서버 컴퓨터를 임대해주는 서비스
    HTTP 프로토콜 인터넷 상에서 데이터를 주고받기 위한 통신 규약 중 하나로 웹 브라우저-웹 서버 간 데이터 전송에 사용
    가상 호스팅 하나의 물리 서버를 여러 가상 서버로 분할하여 각 웹사이트가 독립 서버를 사용하는 것과 같은 기술

     

    3. 생성/설치/연결 과정

    3-1. 서버 생성

    리눅스 서버를 생성하기 위해서는 클라우드 서비스를 이용하거나, 자체적으로 서버를 구축해야 합니다.

    서버를 구축하고 해당 서버에 접속하기 위해서는 SSH 프로토콜을 이용해야 합니다.

     

    아래의 NCP 블로그를 참고하여 클라우드 서비스를 이용한 서버를 생성해보시길 바랍니다.

     

    [이렇게 사용하세요!] 네이버 클라우드 플랫폼으로 손쉽게 웹 서버(APM) 구축하기

    네이버 클라우드 플랫폼을 이용하여 나만의 웹페이지 만들기 블로그, 카페, 티스토리 등 컨텐츠를 올리고 ...

    blog.naver.com

     

    3-2. 특정(기본) 사용자 생성

    # adduser three
    
    # useradd three
    adduser 비밀번호와 사용자의 기타 정보 입력하여 계정 생성
    useradd 순수히 계정만 생성

     

    리눅스에서는 보안상의 이유로 root 계정으로 로그인하는 것이 권장되지 않습니다.

    따라서 root 계정으로 로그인하여 기본 사용자를 생성하고, 해당 사용자에 root 권한을 부여하는 것이 좋습니다.

     

    3-3. 특정 사용자에 root(sudo) 권한 부여

    # vi /etc/sudoers

    sudoers 설정 파일 내에서

    root ALL=(ALL:ALL) ALL 행을 찾아 그 아래 줄에

    username ALL=(ALL:ALL) ALL 와 같이 행을 추가합니다.

    Esc, : wq (Vi 에디터)를 통해 변경 내용을 저장하고 에디터를 종료합니다.

     

    3-4. 웹 서버 설치

    리눅스에는 여러 웹 서버가 있지만, Apache와 Nginx가 가장 대표적입니다. 아래와 같은 명령어를 통해 설치할 수 있습니다.

    우선 패키지 관리자를 업데이트를 하며, 최신 버전의 소프트웨어를 설치하기 위한 준비를 진행합니다.

     

    3-4-1. Apache

    $ sudo apt update
    $ sudo apt install apache2

     

    3-4-2. Nginx

    $ sudo apt update
    $ sudo apt install nginx

     

    3-5. 도메인 연결

    3-5-1. 도메인 등록

    도메인 연결에 앞서, 도메인을 등록해야 합니다.

    도메인 등록 업체에서 도메인을 구입하고, DNS 설정을 변경할 수 있는 계정을 생성합니다.

     

    간단히 실습하는 과정이기 때문에, 아래의 "내도메인.한국" 사이트에서 무료로 도메인을 등록하여 실습을 진행했습니다.

     

    내도메인.한국 - 한글 무료 도메인 등록센터

    한글 무료 도메인 내도메인.한국, 웹포워딩, DNS 등 무료 도메인 기능 제공

    xn--220b31d95hq8o.xn--3e0b707e

     

    아래와 같이 도메인 이름을 검색하여 등록합니다.

     

    아래와 같은 DNS 설정 페이지에서 A 또는 CNAME 레코드를 추가하여 도메인을 웹 서버의 IP 주소와 연결합니다.

    A 레코드는 도메인 이름을 IPv4 주소로 연결하고, CNAME 레코드는 도메인 이름을 다른 도메인 이름에 연결합니다.

     

    3-5-2. 서버 생성 및 접속

    $ ssh username@도메인주소

     

    3-5-3. nginx 파일 수정

    $ sudo vi /etc/nginx/sites-enabled/default

     

    /etc/nginx/sites-enabled/default는 nginx 서버에서 기본적으로 사용하는 설정 파일 중 하나로,

    이 파일을 수정하여 서버에 도메인을 연결하면 해당 도메인으로의 접속을 처리할 수 있도록 nginx가 설정됩니다.

     

    listen [::]:80 default_serverIPv6 주소를 통해 들어오는 모든 HTTP 요청을 처리하도록 nginx를 구성합니다.

    하지만 이 구성은 시스템에 IPv6 주소가 할당되어 있지 않은 경우에는 nginx가 시작되지 않을 수 있기 때문에,

    주석처리(#)하여 nginx가 IPv4 주소만 수신하도록 구성해 정상 작동할 수 있도록 하였습니다.

     

    3-5-4. nginx 서비스 시작

    nginx 서비스를 시작하고, 도메인을 웹 브라우저에 입력하면 연결되는 것을 확인할 수 있습니다.

    $ sudo systemctl start nginx.service

     

    ❤️‍🔥 마무리

    이번 글에서는 리눅스에서 웹 서버를 설치하고 도메인을 연결하는 과정을 살펴보았습니다.

    서버 설정은 처음 접하는 분들에게는 많이 어려울 수 있지만,

    이 글을 통해 최소한의 기본 설정만으로도 웹 서버를 구축할 수 있다는 것을 알고 흥미를 느껴보셨으면 좋겠습니다.

     

    저도 계속해서 서버 다루는 방법과 관련된 주제를 공부하도록 하겠습니다. 감사합니다❤️‍🔥

Designed by Tistory.