Skip to content

Latest commit

 

History

History
188 lines (127 loc) · 17.6 KB

7.myWebServer1.md

File metadata and controls

188 lines (127 loc) · 17.6 KB

내가 운영하는 웹서버 기본

웹서버 란?

웹서버란 쉽게 말해 http를 통해 웹 브라우저에서 요청하는 html문서나 리소스를 전달해주는 서비스 프로그램입니다.
즉 우리는 웹서버를 통해 웹페이지에 접속할수 있게 됩니다.
그렇다면 이번 시간에는 운영체제별로 자신의 웹서버를 직접 운용해보겠습니다.
Window
Mac
Linux

Window에서 웹서버 운용하기

  • 웹 서버 운영하기(윈도우)

    1. 구글에 bitnami WAMP stack을 검색해 bitnami사이트에서 아파치를 설치해보자.

    사실 윈도우에 아파치를 직접 설치하는 것은 꽤 까다로운 일이라 bitnami를 이용해 설치하는 겁니다.
    WAMP의 W는 Windows, A는 Apache, M은 MySQL, P는 PHP의 약자입니다.
    리는 이 중에서 Apache 웹서버를 설치하기 위해서 Bitnami를 깔고 있는 겁니다.

    2. 설치가 완료되었으면 bitnami manager을 통해 웹서버를 운용해보자.

    bitnami 설치가 완료되면 보통 자동으로 bitnami manager가 뜰텐데 만약 뜨지 않는다면 C:\Bitnami\wampstack-7.3.13-0의 manager-windows.exe를 통해 열수 있습니다.

    bitnami manager가 떴다면 오른쪽 하단에 있는 Go to application을 눌러 줍니다.

    짜잔! 웹페이지가 정상적으로 뜬다면 설치에 성공한 것입니다.

    다시 bitnami manager로 돌아와 상단의 Manage Server를 눌러보면 Apache Web Server가 실행중임을 확인 할 수 있습니다. 그 위의 MySQL Database는 무시 해 줍시다.

    만약 웹 서버를 끄고 싶다면 Apache Web Server을 누른후 Stop버튼을 눌러줍니다. 이제 아까 접속했던 웹페이지에서 reload를 하면 웹페이지가 닫혀 있습니다.

    3. 인터넷주소의 의미를 알아보자.(웹서버와 HTTP)

    HTTP는 Hyper Text Transfer Protocol의 약자로 웹페이지를 전송하기 위해서 만든 통신 규약이라는 뜻입니다. 우리는 이 HTTP를 주소창에서 자주 볼 수 있습니다. Go to application으로 접속한 웹사이트의 주소창을 보면 localhost라고 되어있습니다. 이를 http://localhost/index.htmlhttp://127.0.0.1/index.html로 바꿔봅시다. 모두 같은 사이트에 접속되는것을 볼 수 있습니다.

    localhost와 같이 의미가 있는 이름을 도메인 네임(domain name), 127.0.0.1과 같이 번호로 되어 있는 것을 ip 주소(ip address)라고 부릅니다.

    localhost127.0.0.1 둘다 자신의 컴퓨터를 가르키며 http://127.0.0.1/index.html를 웹브라우저에 입력하면 웹브라우저는 같은 컴퓨터에 설치된 웹서버에게 index.html을 요청합니다. 웹서버는 웹페이지를 저장하기로 약속된 디렉토리인 htdocs에서 index.html 파일의 코드를 읽어서 웹브라우저에게 전송합니다. 웹서버는 코드를 해석해서 화면에 웹페이지를 표시하는 방식입니다.

    • htdoc디렉토리는 어디에 있을까?
      htdoc는 hypertext document의 약자로 2장의 Bitnami manager를 키기위해 열었던 C:\Bitnami\wampstack-7.3.13-0에서 apache2에 들어가면 찾을수 있습니다.
      만약 자신이 만든 프로젝트를 웹서버를 통해 표시하고 싶다면 이 htdoc폴더에 기존의 파일들을 모두 삭제한 후 넣어주면 됩니다.

    4. 다른 컴퓨터로 내 웹사이트에 접속해보자.(웹서버와 웹브라우저의 통신)

    위에서 우리는 우리 컴퓨터 내부에 있는 index.html파일을 불러와 웹서버를 통해 표시했습니다. 그러면 네이버나 구글의 html파일은 우리 컴퓨터에 없음에도 어떻게 표시되는 걸까요? 이는 도메인주소 혹은 ip주소를 통해 현재 내 컴퓨터의 웹 브라우저에서 상대 컴퓨터의 웹서버에 접속해 해당 파일을 요청합니다.
    그렇다면 현재 내 컴퓨터의 ip주소를 알아야 다른 컴퓨터에서 접속을 할 수 있을 것입니다.

    자신의 ip주소는 Window키+R키를 누른후 cmd를 입력해 명령 프롬프트를 열어 ipconfig라고 입력합니다.
    그럼 아래쪽에 IPv4 주소 . . . . . . . . . : xxx.xxx.xxx.xxx와 같이 ip주소를 알아낼 수 있습니다.

    이제 알아낸 주소를 다른 컴퓨터인 휴대폰으로 http://xxx.xxx.xxx.xxx/index.html들어가 봅시다.

    단! 웹브라우저가 설치된 컴퓨터와 웹서버가 설치된 컴퓨터를 같은 네트워크에 접속해야 합니다. 즉, 핸드폰으로 연결된 와이파이와 컴퓨터에 연결된 와이파이가 같아야 합니다.

Mac에서 웹서버 운용하기

  • 웹 서버 운영하기(맥)

    1. 구글에 bitnami MAMP stack을 검색해 bitnami사이트에서 아파치를 설치해보자.

    사실 맥에는 이미 아파치가 설치되어 있지만 나중에 지워질수 있으므로 bitnami를 이용해 설치 해봅시다.
    MAMP의 M는 Mac, A는 Apache, M은 MySQL, P는 PHP의 약자입니다.
    우리는 이 중에서 Apache 웹서버를 설치하기 위해서 Bitnami를 깔고 있는 겁니다.

    2. 설치가 완료되었으면 bitnami manager을 통해 웹서버를 운용해 보자.

    bitnami 설치가 완료되면 보통 자동으로 bitnami manager가 뜰텐데 만약 뜨지 않는다면 Application/mampstack-**의 manager-osx를 통해 열수 있습니다.

    bitnami manager가 떴다면 오른쪽 하단에 있는 Go to application을 눌러 줍니다.

    짜잔! 웹페이지가 정상적으로 뜬다면 설치에 성공한 것입니다.

    다시 bitnami manager로 돌아와 상단의 Manage Server를 눌러보면 Apache Web Server가 실행중임을 확인 할 수 있습니다. 그 위의 MySQL Database는 무시 해 줍시다.

    만약 웹 서버를 끄고 싶다면 Apache Web Server을 누른후 Stop버튼을 눌러줍니다. 이제 아까 접속했던 웹페이지에서 reload를 하면 웹페이지가 닫혀 있습니다.

    3. 인터넷주소의 의미를 알아보자.(웹서버와 HTTP)

    HTTP는 Hyper Text Transfer Protocol의 약자로 웹페이지를 전송하기 위해서 만든 통신 규약이라는 뜻입니다. 우리는 이 HTTP를 주소창에서 자주 볼 수 있습니다. Go to application으로 접속한 웹사이트의 주소창을 보면 localhost:8080라고 되어있습니다. 이를 http://localhost:8080/index.htmlhttp://127.0.0.1:8080/index.html로 바꿔봅시다. 모두 같은 사이트에 접속되는것을 볼 수 있습니다.

    localhost와 같이 의미가 있는 이름을 도메인 네임(domain name), 127.0.0.1과 같이 번호로 되어 있는 것을 ip 주소(ip address)라고 부릅니다. 그 뒤에 있는 :8080포트(port)라는 것입니다. 8080이 붙은 이유는 맥에는 기본적으로 웹서버가 설치되어 있기 때문에 웹서버에 접속했을 때 기존의 웹서버와 Bitnami를 이용해서 설치한 웹서버를 구별하기 위해서 나중에 설치한 웹서버에 포트 번호를 8080으로 부여한 것입니다. 기존의 웹서버는 포트 번호가 80입니다만, 웹서버의 포트 번호는 기본적으로 80을 쓰기로 약속했기 때문에 80을 붙이지 않아도 80으로 간주하고 있는 것입니다. 자주 방문하는 웹사이트에 주소 뒤에 :80을 붙여보면 접속이 될 거에요. 80 외에 다른 숫자를 하면 오류가 납니다.

    localhost127.0.0.1 둘다 자신의 컴퓨터를 가르키며 http://127.0.0.1:8080/index.html를 웹브라우저에 입력하면 웹브라우저는 같은 컴퓨터에 설치된 웹서버에게 index.html을 요청합니다. 웹서버는 웹페이지를 저장하기로 약속된 디렉토리인 htdocs에서 index.html 파일의 코드를 읽어서 웹브라우저에게 전송합니다. 웹서버는 코드를 해석해서 화면에 웹페이지를 표시하는 방식입니다.

    • htdoc디렉토리는 어디에 있을까?
      htdoc는 hypertext document의 약자로 2장의 Bitnami manager를 키기위해 열었던 Application/mampstack-**에서 apache2에 들어가면 찾을수 있습니다.
      만약 자신이 만든 프로젝트를 웹서버를 통해 표시하고 싶다면 이 htdoc폴더에 기존의 파일들을 모두 삭제한 후 넣어주면 됩니다.

    4. 다른 컴퓨터로 내 웹사이트에 접속해보자.(웹서버와 웹브라우저의 통신)

    위에서 우리는 우리 컴퓨터 내부에 있는 index.html파일을 불러와 웹서버를 통해 표시했습니다. 그러면 네이버나 구글의 html파일은 우리 컴퓨터에 없음에도 어떻게 표시되는 걸까요? 이는 도메인주소 혹은 ip주소를 통해 현재 내 컴퓨터의 웹 브라우저에서 상대 컴퓨터의 웹서버에 접속해 해당 파일을 요청합니다.
    그렇다면 현재 내 컴퓨터의 ip주소를 알아야 다른 컴퓨터에서 접속을 할 수 있을 것입니다.

    자신의 ip주소는 제어판(System Preference에 들어간후 Network을 클릭하면 현재 자신이 연결된 인터넷이 초록불로 뜰것입니다. 그러면 오른쪽 하단의 고급을 누르시면 무언가 뜰것입니다. 위쪽을 보면 TCP/IP가 있는데 그걸 누르시면 드디어 아래쪽에 IPv4 주소: xxx.xxx.xxx.xxx와 같이 ip주소를 알아낼 수 있습니다.

    이제 알아낸 주소를 다른 컴퓨터인 휴대폰으로 http://xxx.xxx.xxx.xxx:8080/index.html들어가 봅시다.

    단! 웹브라우저가 설치된 컴퓨터와 웹서버가 설치된 컴퓨터를 같은 네트워크에 접속해야 합니다. 즉, 핸드폰으로 연결된 와이파이와 컴퓨터에 연결된 와이파이가 같아야 합니다.

Linux에서 웹서버 운용하기

  • 웹 서버 운영하기(리눅스)

    1. 구글에 bapache install ubuntu을 검색해 아파치를 설치해보자.

    검색해보니 다음과 같은 사이트에서 설치방법을 알려주고 있습니다.
    우선 터미널을 연후 아래의 코드르 쳐줍니다.

    sudo apt-get update
    

    sudo 는 슈퍼 관리자의 권한으로 실행하라는 의미입니다. 리눅스에서 프로그램을 설치하는 것은 일반유저의 권한으로 할 수 없습니다.
    apt-get은 리눅스 배포판 중의 하나인 우분투에서 사용할 수 있는 일종의 앱스토어입니다. 이 프로그램을 이용해서 손쉽게 프로그램을 설치할 수 있습니다.
    update는 설치할 수 있는 프로그램들의 목록을 최신상태로 갱신하라는 의미입니다. 프로그램을 설치하기 전엔 이 명령을 항상 실행해주세요.

    sudo apt-get install apache2
    

    이제 아파치를 설치해 봅시다 만약 Do you want continue?[y/n]이 뜬다면 y를 입력해줍니다.

    2. 인터넷주소의 의미를 알아보자.(웹서버와 HTTP)

    HTTP는 Hyper Text Transfer Protocol의 약자로 웹페이지를 전송하기 위해서 만든 통신 규약이라는 뜻입니다. 우리는 이 HTTP를 주소창에서 자주 볼 수 있습니다.

    127.0.0.1과 같이 번호로 되어 있는 것보신적이 있으실 겁니다 우리는 이것을 ip 주소(ip address)라고 부릅니다.
    우리는 이 ip주소를 이용해 웹서버가 설치된 컴퓨터에 접속해 해당 파일(index.html)을 요청하여 웹 브라우저에 띄워볼것 입니다. 즉 ip주소를 전화번호와 같은 개념이라고 보시면 될것 같습니다. 그렇다면 현재 웹서버가 내 컴퓨터에 설치되어 있으므로 가장 먼저 현재 내컴퓨터에 연결된 ip주소를 알아내야 합니다.

    콘솔창에서 아래 코드를 입력해줍니다.

    hostname -I
    

    이제 주어진 ip주소를 가지고 주소창에 xxx.xxx.xxx.xxx/index.html로 접속해 봅시다.

    짜잔! 웹페이지가 떳다면 성공적으로 설치를 완료한것입니다.

    • index.html파일은 내컴퓨터의 어디에 있을까? 우리는 xxx.xxx.xxx.xxx/index.html을 통해 내 컴퓨터내에 있는 index.html파일을 요청해 띄웠습니다.
      접속하신 사이트를 보시면 replace this file(located at //~)과 같이 나와있을 것입니다. 여기서 ~/~/~이 바로 index.html이 위치한 주소입니다.

    자 이제 콘솔창에서 index.html이 있는 곳으로 이동해 봅시다.

     cd /~/~/~;
     mv index.html index2.html
    

    우리는 2번째 코드로 index.html파일의 이름을 index2.html로 바꿔 보았습니다.

    이제 xxx.xxx.xxx.xxx/index.html로 접속하신다면 index.html파일이 없으므로 접속이 되지않고 xxx.xxx.xxx.xxx/index2.html로 접속하셔야 합니다.

    • 만약 자신이 만든 프로젝트를 웹서버를 통해 표시하고 싶다면
    cd 자기 프로젝트 주소;
    cp -R . /~/~/~
    

    로 자기 프로젝트를 위 폴더로 복사시켜줍니다.


이번에는 아마존 웹 서비스중 하나인 EC2에 대해 소개해 드리겠습니다.
EC2는 아마존 웹서비스에서 제공하는 클라우드 컴퓨팅 중 하나이며 우리는 EC2를 통해 인터넷의 공간에 가상의 컴퓨터를 만들어 자신의 컴퓨터가 아닌 클라우드(인터넷)에 연결된 다른 컴퓨터로 정보를 처리할 수 있습니다.

이제 직접 EC2를 사용해 보도록 합시다.

우선 EC2를 사용하기 위해 AWS에 접속하여 회원가입을 진행해줍니다.(신용카드를 등록할시 해외결제가 가능한 카드를 등록하셔야 합니다.)
가입을 완료 하였다면 EC2서비스에 들어가봅시다.
왼쪽 메뉴바를 보시면 인스턴스가 보이실 겁니다. 쉽게 컴퓨터 한대가 인스턴스 1개라고 생각하시면 될같습니다.
가상의 컴퓨터를 만들기위해 인스턴스에 들어가 인스턴스 시작을 눌러줍니다.

  • 단계 1: Amazon Machine Image(AMI) 선택
    컴퓨터를 만들때 필요한 소프트웨어 구성(운영 체제, 애플리케이션 서버, 애플리케이션)이 포함된 템플릿을 고를수있습니다.
    우리는 Ubuntu Server을 골라줍시다.

  • 단계 2: 인스턴스 유형 선택
    인스턴스의 CPU, 메모리, 스토리지 및 네트워킹 용량을 정해주는 단계입니다.
    우리는 유형: t2.micro vCPUS: 1 메모리: 1GiB로 설정해 줍니다.

  • 단계 3: 인스턴스 세부 정보 구성
    인스턴스 개수를 통해 만들 컴퓨터의 개수를 정해줄수 있습니다. 우리는 1그대로 둡시다.

  • 단계 4: 스토리지 추가
    저장장치 설정을 할수있는 단계 입니다. 크기를 8 GiB로 두고 계속 진행해 봅시다.

  • 단계 5: 태그 추가
    컴퓨터의 이름을 정할수 있는 단계입니다. 태그 추가를 누른후 키(Key)는 Name, 값은 웹서버라고 적어줍시다

  • 단계 6: 보안 그룹 구성
    컴퓨터 보안에 관련된 단계입니다. 보안 그룹 이름webserver라 지정해주고 규칙추가를 누르신후 유형을 HTTP로 선택한후 검토및시작을 눌러줍시다.

  • 단계 7: 인스턴스 시작 검토
    인스턴스를 시작하기 앞서 마지막 설정들을 확인하는 단계입니다. 확인을 완료한후 시작하기버튼을 누르시면 기존 키 페어 또는 새 키 페어 생성이라는 창이 뜨실 겁니다. 이것은 우리가 생성한 컴퓨터에 접속하기 위한 비밀번호를 지정하는 것입니다. 여기서 새키 페어 생성을 누르신 후 키 페어 이름awspwd를 입력 후 키 페어 다운로드를 누르시면 awspwd.pem이라는 파일이 다운되는데 이 파일을 메모장으로 열어보시면 실제 비밀번호를 보실 수 있습니다. 마지막으로 인스턴스 시작을 누르시면 한대의 컴퓨터를 만드는 작업이 완료되었습니다.

아래쪽의 인스턴스 보기를 누르시면 현재 내 인스턴스들을 보실 수 있습니다. 인스턴스 상태가 runnuning인 것을 확인하실 수 있습니다.
이로써 우리는 간단한 클릭 몇번으로 가상의 컴퓨터를 만드는 작업을 완료했습니다!