mobaXterm
리눅스와 유닉스 시스템에서 사용되는 터미널 에뮬레이터(Terminal Emulator)
*터미널 에뮬레이터 : 컴퓨터와 다른 장치를 연결하여 컴퓨터에서 명령어를 입력하고 출력할 수 있도록 해주는 소프트웨어
mobaXterm으로 AWS instance에 접속 (방법은 생략)
AWS instance 접속 후, 한국 시간대인 KST로 변경
# sudo : 관리자 권한을 사용한다
$ sudo timedatectl set-timezone Asia/Seoul
웹 서버 소프트웨어
클라이언트에서 요청한 웹 페이지를 찾아서 해당 페이지를 응답으로 전송해주는 역할
웹 서버 소프트웨어의 여러 기능
- 포트 리스닝
- 네트워크 상의 특정한 포트(일반적으로 80번 포트)를 리스닝하며, 클라이언트의 요청을 대기
- HTTP 요청 처리
- 클라이언트가 요청한 HTTP 요청 메시지를 받아서 처리
- 웹 페이지 제공
- 요청한 파일을 찾아서 클라이언트에게 전송
- 웹 서버는 정적 파일이나 동적 콘텐츠를 제공할 수 있으며, 동적 콘텐츠의 경우 웹 애플리케이션 서버와 연동하여 처리 가능
- 로깅
- 요청한 파일의 경로, IP 주소, 요청 시간 등의 정보를 로그로 기록
- 에러 처리
- 클라이언트의 요청에 대해 오류가 발생한 경우, 적절한 에러 메시지를 전송
- 보안
- SSL/TLS 인증서를 지원하여 암호화된 통신을 제공하거나, 웹 방화벽 등의 보안 기능을 제공
웹 서버 소프트웨어의 종류
- Apache HTTP Server
- 가장 오래된 웹 서버 중 하나로, 오픈소스로 개발되어 있음
- 모듈화된 아키텍처를 가지고 있어 필요한 모듈만 선택적으로 사용 가능
- Nginx
- 경량 웹 서버로, 대규모 웹 애플리케이션에 많이 사용
- 로드 밸런싱, 캐싱, 보안 등 다양한 기능을 제공
- Microsoft IIS
- Microsoft에서 개발한 웹 서버로, Windows 운영 체제에서만 사용할 수 있음
- ASP.NET 등의 Microsoft 플랫폼과 함께 사용되며, 윈도우 서버의 일부로 제공됨
- Lighttpd
- 경량 웹 서버로, Apache나 Nginx와 비교하여 메모리 사용량이 적음
- 정적 파일 서비스에 최적화되어 있으며, 다양한 웹 프레임워크와 함께 사용할 수 있음
- Caddy
- 최근에 등장한 웹 서버로, HTTPS를 기본적으로 지원, SSL/TLS 인증서 발급 기관과의 연동도 간편
- 간단한 설정으로 사용자 친화적인 기능을 제공
Nginx 다운로드
nginx를 설치 후 정적 서버를 EC2에 업로드할 예정
# apt : 리눅스에서 다운로드 시 쓰는 명령어
$ sudo apt update
$ sudo apt install nginx # 이후 y 누르고 다운로드
이후 AWS의 Open IP Address를 웹 주소창에 넣으면 다음과 같은 창이 보임
리눅스와 유닉스 운영 체제에서 사용되는 텍스트 에디터
- vi: 리눅스와 유닉스 운영 체제에서 가장 오래된 텍스트 에디터 중 하나
- 명령 모드, 입력 모드, 마지막 행 모드 등 세 가지 모드를 가지고 있음
- vim: vi의 향상된 버전
- 다양한 확장 기능과 자동 완성 기능, 커스터마이즈 기능 등을 제공
- nano: 초보자에게 친숙한 인터페이스와 간단한 사용법으로 유명한 텍스트 에디터
- 기본적인 편집 기능뿐만 아니라 검색, 치환, 복사, 붙여넣기, 라인 번호 표시 등 다양한 기능을 제공
- emacs: vi와 함께 리눅스와 유닉스에서 가장 많이 사용되는 텍스트 에디터 중 하나
- 다양한 모드와 매크로 기능, 커스터마이즈 기능 등을 제공
$ cd /etc/nginx/sites-available
$ sudo nano default;
위의 명령어를 입력하면 다음과 같은 화면을 볼 수 있음
*listen
- 클라이언트 요청을 받기 위한 IP 주소와 포트를 설정
- 기본 문법 - listen address:port [options];
- listen 80; : 모든 IP 주소에서 80번 포트로 들어오는 HTTP 요청을 처리해라
- listen [::]:80; : IPv6 주소에서 80번 포트로 들어오는 HTTP 요청을 처리해라
- listen 80 default_server; : 80번 포트로 들어오는 요청 중 기본 서버로 설정된 요청을 처리해라
- listen 443 ssl; : 443번 포트로 들어오는 요청 중 SSL 인증서를 사용한 HTTPS 요청을 처리해라
*root
- 서버에서 제공하는 파일의 기본 경로를 지정하는 지시자
- 이 경로 아래에 있는 파일들이 클라이언트에게 제공됨
- http://example.com/index.html 요청이 들어오면, /var/www/html/index.html 파일을 찾아서 클라이언트에게 전송
*location
- 요청된 URL 경로와 일치하는 요청을 처리하기 위한 블록
- HTTP 요청에 대한 경로(Route)를 설정하고, 이를 기반으로 요청을 처리하는 역할을 하기 때문에, **라우터(Router)**라고도 함
- **/**경로에 대한 요청을 처리하기 위해 **location / { ... }**블록이 사용되고 있음
- 이 블록에서 try_file 지시자를 사용
- 요청된 파일을 찾아서 제공
- 파일이 존재하지 않으면 404 Not Found 응답을 반환
아래의 명령어를 입력하면, 웹페이지의 HTML source를 확인 가능
$ cd /var/www/html
$ sudo nano index.nginx-debian.html
$ cd ~ # home으로 이동
$ mkdir nginx-test
# vscode에서 .html 파일 만들고, nginx-text 폴더에 넣음
# 그 후 default에 들어감
# root /var/www/html 을
# root /home/ubuntu/nginx-test 로 수정
# 디렉토리를 변경했으니, nginx를 리로드해주는 과정이 필요
$ sudo service nginx reload
이 작업 후, IP Address를 주소창에 검색하면, html 소스를 웹페이지 상에서 볼 수 있음
DNS(Domain Name System)
IP 주소(e.x. 12.345.678.90)를 도메인 이름(e.x. http://www.gongbuguichan.com)으로 매핑하는 과정
무료 도메인 적용하기
- 내도메인.한국 회원가입
- 원하는 키워드를 검색해보고, 원하는 사이트 선택
- 고급설정 (DNS) - [IP연결(A)] 에 ip 주소 삽입 후 수정하기 클릭
- mapping 완료
'IT_Study > Web' 카테고리의 다른 글
Back-End (4) : Node.js를 이용한 Crawling 방법, WAS, CORS, SSR & CSR (0) | 2023.03.02 |
---|---|
Back-End (3) : 런타임 환경, 웹 애플리케이션 프레임워크, Node.js (0) | 2023.03.01 |
Back-End (1) : 서버, IP, Port, TCP, 클라우드 개념 정리 및 AWS 인스턴스 생성 방법 정리 (0) | 2023.02.28 |
JavaScript (5) : 스레드, 비동기통신, Callback, Promise, Async/await, Ajax (0) | 2023.02.11 |
JavaScript (4) : DOM, QuerySelector, EventDriven, changeEvent 등 DOM을 다루는 메서드 (0) | 2023.02.11 |