웹 서버, 파일 서버 만들기(Nginx, Samba)

dawoon·2024년 9월 5일

웹 서버, 파일 서버 만들기

1. 패키지 목록 업데이트

  • 새로운 패키지 설치 전 항상 최신 버전의 패키지 목록을 유지하기 위해 아래 명령어를 실행할 것을 권장합니다.
sudo apt update
  • 문제 없이 완료된 경우 Reading package lists... Done라는 결과 값을 확인할 수 있습니다.

2. Nginx 웹 서버 설치

  • nginx 패키지 설치를 시작한다.
    패키지 설치 시 명령어는sudo apt install <설치할 패키지 이름>과 같이 작성하여 진행할 수 있습니다.
sudo apt install nginx
  • 설치 중간에 "Do you want to continue? [Y/n]" 라고 중간 확인 단계가 있으며, "Y"를 입력하면 설치가 계속됩니다.

  • Setting up nginx (1.18.0-0ubuntu1) ... 라고 나오며 다시 입력창이 나오면 패키지 설치가 완료된었다고 볼 수 있습니다.

3. Nginx 서비스 상태 확인

sudo systemctl status nginx
  • 위 명령어를 통해 Nginx가 제대로 실행되고 있는지 확인하기 위해 시스템의 서비스 상태를 체크할 수 있다.

  • Active: active (running) 라는 문구가 보이면 정상적으로 서비스 되고 있는 것입니다.

4. Nginx 기본 웹 페이지 확인

hostname -I
  • 위 명령어를 통해 Raspberry Pi의 내부 IP 주소를 확인할 수 있습니다.

  • 확인한 내부 IP 주소를 브라우저에 "http://123.456.78.90" 형식으로 입력하여 웹 서버에 접속할 수 있습니다.

  • 접속 성공 시 아래 같은 페이지를 확인할 수 있습니다.

5. Samba 설치

Samba는 Raspberry Pi를 네트워크 파일 서버로 만들어서 다른 컴퓨터와 파일을 공유할 수 있게 해줍니다.

  • Samba 패키지 설치를 위해 아래 명령어를 입력합니다.
sudo apt install samba
  • Nginx 패키지 설치때와 동일하게 "Do you want to continue? [Y/n]" 라고 출력되는데 "Y"를 입력하여 계속 진행해주면 됩니다.
  • Setting up samba (2:4.11.6+dfsg-0ubuntu1.8) ...라고 나오면 잘 설치가 완료된 것입니다.

6. 공유할 디렉토리 생성

sudo mkdir -p /home/$USER/shared
sudo chmod 777 /home/$USER/shared
  • 위 명령어를 통해 디렉토리를 만들고 해당 디렉토리에 권한을 부여합니다.

    명령어 설명
    (1) mkdir -p /home/$USER/shared:
    현재 사용자의 홈 디렉토리 아래에 shared라는 디렉토리를 생성합니다.
    $USER는 현재 사용자의 이름을 자동으로 참조합니다.

    (2) chmod 777:
    디렉토리의 권한을 모두에게 읽기, 쓰기, 실행 권한을 부여해, Samba를 통해 접근할 수 있게 해줍니다.

  • 이후 ls 명령어를 통해 shared 디렉토리 생성 여부를 확인합니다.

7. Samba 설정 파일 수정

Samba의 설정 파일인 smb.conf 파일을 수정하여 공유 디렉토리를 설정합니다.

  • 아래 명령어를 통해 Samba 설정 파일을 편집할 수 있는 nano 에디터를 열어준다.
sudo nano /etc/samba/smb.conf
  • 아래 표시된 내용들을 smb.conf 파일의 맨 밑에 내용을 추가합니다.
[shared]
   path = /home/your-username/shared
   available = yes
   valid users = your-username
   read only = no
   browsable = yes
   public = yes
   writable = yes

your-username 이라고 표기된 곳은 실제 사용자 이름으로 변경하여 작성해야 합니다.
(ex. path = /home/hongkilldong/shared, valid users = hongkilldong)

  • 다음은 추가한 코드에 대한 설명입니다.
    path : 공유할 디렉토리의 경로
    valid users : 이 디렉토리에 접근할 수 있는 사용자 이름
    read only = no : 읽기 전용이 아닌, 쓰기 권한도 허용
    writable = yes : 쓰기 권한을 활성화

8. Samba 서비스 재시작

  • 설정을 적용하려면 Samba 서비스를 재시작해야 합니다.
sudo systemctl restart smbd
  • 명령어 설명
    systemctl restart smbd: Samba는 데몬(smbd)을 재시작하는 명령어로, 변경된 설정이 바로 적용되도록 해줍니다.

  • Samba 서비스를 재시작한 후에 네트워크 상에서 공유 폴더에 접근할 수 있는지 테스트해봅니다.
    로컬 컴퓨터에서 네트워크 탐색기나 파일 탐색기를 열고 \\IP주소\shared로 접속해보면 연결된 폴더를 확인할 수 있습니다.

  • Windows에서는 해당 주소 입력 시 자격 증명 입력 창을 확인할 수 있습니다.

  • 해당 로컬 컴퓨터로 지속적으로 폴더를 계속 사용할 예정인 경우 내 자격증명 기억을 체크해두면 이후에는 증명 과정을 거치지 않을 수 있습니다.

  • 만약 네트워크 자격증명 입력 시 pw 입력 하면 엑세스가 거부되었습니다. 라는 문구가 발생하는 경우 아래 조치를 통해 접속할 수 있습니다.

9. Samba 사용자 추가 및 비밀번호 설정 (엑세스 거부 시)

  • 해당 문제가 발생하는 이유는 Samba에 사용자를 추가하지 않았기 때문일 가능성이 있습니다.

  • Samba에서는 각 사용자가 별도의 비밀번호를 가져야하기 때문에 사용자를 추가하고 비밀번호를 설정하는 작업을 진행합니다.

sudo smbpasswd -a your-username
  • 명령어 설명
    smbpasswd -a your-username :
    Samba 사용자 목록에 사용자(your-username)를 추가하고, Samba에서 사용할 비밀번호를 설정하는 역할을 합니다.
    명령어를 입력하면 비밀번호를 묻는 창이 뜨고, 원하는 비밀번호를 입력하면 비밀번호 설정이 완료됩니다.

여기까지 진행하면 Nginx와 Samba를 통해 웹, 파일 개인 서버를 생성한 것입니다.

profile
코딩 입문

0개의 댓글