연구실 서버 컴퓨터(os 우분투 사용)에 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/davetc/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;
}
다음 명령어로 아이디/패스워드 파일을 생성할 수 있다. 위에서 설정한 이름과 파일 이름을 같게 만들어주어야 한다.
💡 sudo htpasswd -c /etc/nginx/.htpasswd마지막으로 만들어진 설정 파일을 이용해 enabled 폴더에 심볼릭 링크를 만들어준다.
💡 sudo ln -s [avalible안의 경로/파일이름] [enabled의 경로/파일이름]nginx에 잘못된 설정을 할 경우 서버가 그대로 죽어버릴 수 있다. 이를 방지하기 위해 설정을 적용하기 전 nginx 에서 제공하는 테스트기능을 사용한다.
💡 sudo nginx -t마지막으로 nginx에 지금까지의 설정을 적용하기 위해 재시작한다.
💡 sudo service nginx restart후 방화벽 설정 ufw status로 확인하여 80포트를 열어주고 ip주소:port/webdav 를 통해 접속하면 된다.
위는 실행된 모습이다. 경로에 temp 파일이 생성되어있었나보다.
이로, 우분투에서의 설정은 거의 끝이 났다.
vmware를 써서 가상 환경에서 우분투를 실행하다보니, 가상환경이 올라가있는 메인 컴퓨터의 포트도 열어주지 않으면, 외부에서 접속이 안 되었다.
그래서 메인 컴퓨터의 포트를 열어주려고 공유기 주소를 찾아 들어가려고 했는데, 알고보니 집 컴퓨터는 공인ip(리얼ip)를 할당받고, 따로 공유기의 게이트웨이 주소가 없는 상태였다.
그래서 방화벽에서 직접 인바운드 규칙을 설정해 포트를 열어주니 접속이 잘 되었다.