풀스택 웹개발 부트캠프 8주차 (3)

syxxne·2023년 9월 15일
0

부트캠프

목록 보기
22/42

Nginx

  • 비동기 이벤트 기반 구조의 웹 서버 프로그램
  • 클라이언트로부터 요청을 받았을 때, 요청에 맞는 정적 파일을 응답해주는 HTTP 웹 서버로 활용됨
  • Apache는 클라이언트 접속 시마다 프로세스 또는 스레드를 생성하는 구조
    → 대량의 클라이언트 (1만 이상) 가 접속했을 경우, 한계가 있음
    → 이를 보완하기 위해 만들어진 것이 Nginx

Nginx 설치 & 설정

EC2 터미널 접속 (PuTTY)

패키지 저장소 업데이트

sudo apt-get update

Nginx 설치

sudo apt-get install nginx

sites-available & sites-enabled

  • sites-available 디렉토리
    • 서버에 호스팅할 수 있는 여러 웹 사이트 설정 파일이 저장됨
    • 각 설정 파일은 하나의 가상 호스팅을 정의하며, 이를 통해 서로 다른 도메인 또는 서브도메인에 대한 웹 사이트 구성
    • 실제로 웹 서버가 사용하는 설정 파일 ❌
    • 사용 가능한 설정 목록을 나타내는 것 ⭕ (작성만 하는 곳)
  • sites-enabled 디렉토리
    • sites-available에서 작성한 실제로 활성화되는 가상 호스팅 설정 파일이 있는 곳
    • 모든 설정 파일들은 심볼릭 링크 (Symbolic Link) 로 sites-available 디렉토리에 있는 설정 파일과 연결됨
  • 원본 파일을 가리키도록 링크를 연결시켜둔 것
  • 윈도우의 '바로가기'와 유사함
  • 원본 파일의 크기와 무관
  • 원본 파일이 삭제되어 존재하지 않을 경우, 링크 파일이 빨간색으로 깜빡거리면서 원본 파일이 없다는 것을 알려줌
  • 출처

(선택) defualt 파일 백업

  • default 파일
    • Nginx 설정 파일
    • Nginx 설치 후, welcome to Nginx 페이지를 실행함
    • 새로 만드는 설정과 겹칠 수 있으므로 원본 파일 백업 후, 기본 설정 파일 삭제
sudo cp -r /etc/nginx/sites-available/ /etc/nginx/sites-available-origin
sudo cp -r /etc/nginx/sites-enabled/ /etc/nginx/sites-enabled-origin

(선택) defualt 파일 삭제

sudo rm /etc/nginx/sites-available/default
sudo rm /etc/nginx/sites-enabled/default

설정 파일 생성

sudo vi /etc/nginx/sites-available/test.conf
// test.conf 파일 작성
server {
		listen 80;
        server_name: IP / Domain
        location / {
        		proxy_pass http://127.0.0.1:8000;
        }
}

심볼릭 파일 생성

sudo ln -s /etc/nginx/sites-available/test /etc/nginx/sites-enabled/test

// nginx 재시작
sudo systemctl restart nginx

Node.js 설치

curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash

sudo apt-get install -y nodejs

sudo npm i -g pm2

Git Clone 후, 서버 실행

  • $ mkdir 폴더명
  • $ cd 폴더명
  • 폴더명$ git clone 저장소 주소
  • 폴더명$ npm install
  • 폴더명$ pm2 start index.js

pm2

  • Node.js 어플리케이션을 쉽게 관리할 수 있게 해주는 Process Manager
  • pm2 status : 상태 확인
  • pm2 restart id값 : 재시작
  • pm2 stop id값 : 중지
  • pm2 kill : 완전 중지
  • pm2 log : 로그 확인

권한 변경

  • 50X 오류 : 외부에서 폴더를 읽을 권한이 없어서 생기는 문제
cd /home
sudo chmod 711 ubuntu/

권한 설정

  • 권한 확인 : ls -l
  • 1번째 문자
    • - : 파일
    • d : 디렉토리 (폴더)
    • l : 심볼릭 링크
  • 2~4번째 문자 : 파일 소유자에 대한 권한
  • 5~7번째 문자 : 파일의 소유 그룹에 대한 권한
  • 8~10번짜ㅐ 문자 : 타인의 권한

권한 의미

  • 2~4번째 문자 : 파일 소유자에 대한 권한

  • 5~7번째 문자 : 파일의 소유 그룹에 대한 권한

  • 8~10번째 문자 : 타인의 권한

  • ex) 711 : 소유자는 읽기, 쓰기, 실행 / 소유 그룹은 읽기, 쓰기 / 타인은 읽기

    모드 (숫자)모드 (알파벳)권한
    4r읽기
    2w쓰기
    1x실행

0개의 댓글