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 디렉토리에 있는 설정 파일과 연결됨
Symbolic Link
- 원본 파일을 가리키도록 링크를 연결시켜둔 것
- 윈도우의 '바로가기'와 유사함
- 원본 파일의 크기와 무관
- 원본 파일이 삭제되어 존재하지 않을 경우, 링크 파일이 빨간색으로 깜빡거리면서 원본 파일이 없다는 것을 알려줌
- 출처
(선택) 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 : 소유자는 읽기, 쓰기, 실행 / 소유 그룹은 읽기, 쓰기 / 타인은 읽기
모드 (숫자) | 모드 (알파벳) | 권한 |
---|
4 | r | 읽기 |
2 | w | 쓰기 |
1 | x | 실행 |