Nginx 로 우분투 웹 서버 구축

POII·2022년 10월 27일
0

개요

연구실 서버 컴퓨터(os 우분투 사용)에 nginx 로 웹서버 구축해, 라벨링된 데이터를 각자의 컴퓨터에서 업로드, 다운로드 할 수 있도록 하기 위해 웹 서버를 만들기로 했다.

Nginx

웹 서버는 nginx 를 사용하였다. 구축 자체는 apache보다 복잡할 수 있지만, 가볍고 성능이 좋으며 높은 트래픽 처리가 가능하다고 한다.

먼저 다음 명령어를 사용해 nginx를 설치한다.

💡 sudo apt-get update sudo apt-get install nginx nginx-full

그 후 사용할 디렉토리를 만들고 nginx에게 권한을 부여해준다

💡 sudo mkdir /var/dav sudo chown www-data:www-data /var/dav

환경설정

etc/nginx/sites-available 위치에 default 파일이나, 새로운 파일을 만들어 서버 블록에 다음을 추가해준다 (해당 디렉토리에 위치 매핑)

💡
location /webdav {
          autoindex on;
          alias /var/dav;    # webdav가 실행될 디렉토리를 지정합니다. 혹은 root /var/dav; 로 설정해도 됩니다.
          auth_basic "Restricted Access";
          auth_basic_user_file /etc/nginx/.htpasswd; #사용자 id와 password를 설정할 파일
          client_body_temp_path /var/dav/temp;
          dav_methods PUT DELETE MKCOL COPY MOVE;
          dav_ext_methods PROPFIND OPTIONS;
          dav_access user:rw group:rw all:r;
      }

WEBDAV 패스워드 파일 작성

다음 명령어로 아이디/패스워드 파일을 생성할 수 있다. 위에서 설정한 이름과 파일 이름을 같게 만들어주어야 한다.

💡 sudo htpasswd -c /etc/nginx/.htpasswd
  • 참고 : 파일의 구조는 login-id : password 이다.

심볼릭 링크

마지막으로 만들어진 설정 파일을 이용해 enabled 폴더에 심볼릭 링크를 만들어준다.

💡 sudo ln -s [avalible안의 경로/파일이름] [enabled의 경로/파일이름]

테스트 및 실행

nginx에 잘못된 설정을 할 경우 서버가 그대로 죽어버릴 수 있다. 이를 방지하기 위해 설정을 적용하기 전 nginx 에서 제공하는 테스트기능을 사용한다.

💡 sudo nginx -t

마지막으로 nginx에 지금까지의 설정을 적용하기 위해 재시작한다.

💡 sudo service nginx restart
  • 참고 : 80포트가 이미 실행중이면 nginx가 실행되지 않는다. 보통 apache가 설치되어 있을 경우 80포트를 사용하므로 apache를 stop 해주고 이를 실행하는 것이 좋다.

후 방화벽 설정 ufw status로 확인하여 80포트를 열어주고 ip주소:port/webdav 를 통해 접속하면 된다.

위는 실행된 모습이다. 경로에 temp 파일이 생성되어있었나보다.

이로, 우분투에서의 설정은 거의 끝이 났다.

추가

vmware를 써서 가상 환경에서 우분투를 실행하다보니, 가상환경이 올라가있는 메인 컴퓨터의 포트도 열어주지 않으면, 외부에서 접속이 안 되었다.

그래서 메인 컴퓨터의 포트를 열어주려고 공유기 주소를 찾아 들어가려고 했는데, 알고보니 집 컴퓨터는 공인ip(리얼ip)를 할당받고, 따로 공유기의 게이트웨이 주소가 없는 상태였다.

그래서 방화벽에서 직접 인바운드 규칙을 설정해 포트를 열어주니 접속이 잘 되었다.

profile
https://github.com/poi1649/learning

0개의 댓글