[먼저 보면 좋은 게시글]
- [웹기본개념] 웹서버와 웹어플리케이션서버 : http://jinbroing.tistory.com/119
[웹서버란]
- 클라이언트(웹브라우저)의 요청에 따른 응답을 하는 역할
- HTTP 프로토콜에 의해 요청됨, HTTP 프로토콜로 응답함
- WAS와는 다르게 웹서버는 정적인 파일을 응답할 때 클라이언트로 보냄
- Apache, Nginx가 대표적인 웹서버
[구축에 필요한 개념]
- ip : 네트워크가 물려진 컴퓨터를 식별하는 식별자
- 도메인 : ip를 포장하는 개념, ip를 다 외우기 힘드니깐 ip 말고 쉽게 인식하고 기억할 수 있는 주소값으로
- 유동 ip / 고정 ip : ip가 지속적으로 변경되는가 아닌가에 따른 구분, 서버용으로는 고정 ip를 사용하는 것이 좋음
- DDNS : 유동 ip를 사용할 경우 ip가 변경되었을 때 변경 요청을 통해 도메인과 ip가 지속적으로 연결될 수 있도록 하는 서버
- 포트포워딩 : 서버와 클라이언트 사이에 공유기가 존재하기때문에 알아야할 지식
1) 공유기 1대에 여러 인터넷 사용 기기들을 물려서 씀 : 1개의 ip를 가지고 여러개 내부 ip를 만들어 여러대의 기기가 사용
2) 포트 : 네트워크가 물려진 컴퓨터에 접속할 때 사용하는 문 같은 개념, 0번 ~ 65535번까지 존재함, 포트를 통해 접속
3) 클라이언트가 서버에 요청을 날릴 때에는 공유기 ip(외부 ip)를 사용함, 내부 ip는 외부에서 사용 불가
4) 포트포워딩 : 공유기 - 외부 ip와 포트번호 요청에 맞게 내부 ip + 포트번호(기기 식별 및 기기의 쓰임새) 바인딩시키는 것
- localhost : 네트워크에 물려져있는 컴퓨터를 호스트(호스트 이름- ip 매핑)라 함, localhost 즉, 나의 컴퓨터를 이야기함
- 도메인과 네임서버 : 아래 있음
[웹서버 구축 환경]
- windows10
- 웹서버 구축 프로그램 : Bitnami wamp
[웹서버 운영하기]
1) Bitnami WAMP Stack 설치 : https://bitnami.com/stacks 에서 wamp 검색 후 다운로드
- WAMP란? Windows Apache Mysql Php 약자
=> 윈도우 환경에 Apache 웹서버, db(mysql), 동적인 서버를 위한 php를 한번에 설치 및 앱을 구성해주는 프로그램
- 맥 환경을 위한 MAMP도 있음
- 리눅스 환경을 위한 LAMP도 있음
- 기본적으로 웹서버와 WAS를 구분하기위해 설치해서 사용해봄
2) WAMP 프로그램에서 Open Application Folder 메뉴 클릭 - apache2 > htdocs 디렉토리로 가기 : 정적인 파일 전용 디렉토리
3) 브라우저 주소창에 localhost 입력 후 엔터 땅 : bitnami 로고가 박힌 .html파일(htdocs/index.html) 응답에 성공하면 설치 성공한 것
4) 외부에서도 접속할 수 있도록 하기 : 포트포워딩, 외부 ip와 포트번호를 통해 내부 ip + 포트에 접속할 수 있도록 설정하기
- 내부 ip 알기 : cmd > ipconfig > IPv4 주소 값
- 외부 ip와 내부 ip가 같다면 포트 열어주면 됨
- Apache 웹서버 포트 설정확인
- 공유기별 설정할 수 있는 페이지 접속하기 : 포트포워딩 메뉴 접속 후 각 입력칸에 맞게 입력하기
5) 3번과 동일하게 .html 파일을 클라이언트가 응답받았다면 성공
6) 고정 ip가 아닌 경우에 지속적으로 클라이언트가 접속할 수 있도록 하는 방법은 도메인 구입 후 네임서버를 사용하는 것
- 네임서버 : 클라이언트가 도메인을 통해 요청을 하면 네임서버가 ip를 가지고 ip 주소 웹서버에 요청을 함
- 도메인에 매핑되는 ip를 바꿔주면 됨
- DDNS : ip 변동이 있다면 적용해줌
[더 해보기]
- 클라우드 서버 개설(aws)후 웹서버 구축 : Apache
- 도메인과 네임서버 : https://opentutorials.org/course/559/2802
[참고자료]
- 생활코딩, 집에서 웹서버 운영하기 : https://opentutorials.org/course/228/6040
- 위키피디아, 인터넷 프로토콜(ip) : https://goo.gl/408cxm
'javascript' 카테고리의 다른 글
[자바스크립트] 객체지향 프로그래밍하기 (0) | 2017.05.26 |
---|---|
[API] nodejs 파일 업로드 모듈 (0) | 2017.05.23 |
[자바스크립트 자료구조] 배열 (0) | 2017.05.22 |
[자바스크립트] this 바인딩 포스팅 AS - 바인딩 종류 (0) | 2017.05.20 |
[자바스크립트] 잠깐 쉬어가기 : 자바스크립트 특징 (0) | 2017.05.18 |
댓글