Back-end/🔩 Server program 5

[서버/Server] Apache VS Nginx 짧고 굵게 비교하기

2주에 걸쳐 서버 프로그램으로 Apache와 Nginx를 설치해서 사용해봤다. 두 가지 프로그램이 전체 웹 서비스의 반 이상을 차지할 정도로 폭넓게 사용된다고 하니 어떤 차이점이 있는지 궁금해졌다. Apache http 웹 서버의 대명사라고 불리는 아파치는 MPM(Multi Processing Module : 다중처리모듈) 방식으로 요청을 처리한다. 스레드/프로세스 기반 구조 스레드/프로세스 기반 구조는 기본적으로 한 개의 스레드가 한 개의 요청만을 처리하는 구조이다. 사용자가 늘어날수록 많은 스레드를 생성해 메모리나 CPU 소모가 증가한다. 대표적으로 prefork와 worker 방식이 있다. Prefork MPM 실행 중인 프로세스를 복제하여 처리하는 방식 각 서버 프로세스는 한 번에 하나의 요청만 ..

[서버/Server] Bitnami로 구축한 서버에 외부 접속하기

Bitnami란 무엇일까? 소프트 스퀘어드 1주차 과제는 Ubuntu 위에 APM을 컴파일 설치해 서버를 구축하는 것이었다. 2주차까지는 반복적으로 서버 구축을 하여 익숙해진다고 들었다. 이번에는 편하게 Bitnami를 이용할 것이다. 위키백과에서 bitnami 를 가상 어플라이언스 및 웹 앱, 개발 스택용 소프트웨어 패키지 및 설치 라이브러리라고 서술한다. 쉽게 말해 복잡한 과정의 어플리케이션 솔루션들을 패키지로 만들어 간단히 설치할 수 있도록 도와주는 프로그램이다. 그 중 웹 서버 구축에 필요한 Bitnami WAMP를 사용할 것이다. WAMP는 Window 환경에 Apache / MySQL / PHP를 한 번에 설치해준다. 설치 및 실행 bitnami 사이트에서 설치 후 localhost 혹은 12..

[서버/Server] APM 컴파일 설치하기 3/3 - PHP

PHP 7.4.1 컴파일 설치 현재 Ubuntu 18.04위에 Apache 2.4.46과 MySQL 8.0.19까지 컴파일 설치했다. PHP 버전 7.4.1 설치를 마지막으로 우분투 위에 패키지 매니저를 사용하지 않고 APM 컴파일 설치를 완료했다. 의존성 패키지 설치 의존성 패키지까지 모두 컴파일 설치 할 수는 없으니 편하게 apt-get 명령어를 사용해준다. $ apt-get install libxml2-dev $ apt-get install libjpeg-dev $ apt-get install libpng-dev php 설치 Apache와 MySQL 설치할 때와 동일하게 tar.gz 파일을 다운 받아 압축 해제한다. $ cd /usr/local/ $ wget https://www.php.net/di..

[서버/Server] APM 컴파일 설치하기 2/3 - MySQL

MySQL 8.0.19 컴파일 설치 Ubuntu 18.04 위에 Apache 2.4.46 설치를 완료했다. (이전 내용) MySQL은 버전 8.0.19 를 컴파일 설치했는데 시간이 정말 많이 걸려서 놀랐다. 심지어 도중에 한 번 우분투 복구까지 진행했다. 스냅샷을 찍어 백업시켜둔 과거의 나한테 고마웠다. 덕분에 apt-get upgrade하는데 굉장히 많은 시간이 걸렸지만… 의존성 패키지 설치 MySQL 공식 문서에 꼭 설치해야 하는 패키지들이 명시되어 있다. apt-get update 후 필요한 패키지들을 설치하면 된다. MySQL Community Server 8.0.19 설치 Apache 설치할 때와 동일하게 tar.gz파일을 다운받아 압축 해제해준다. $ cd /usr/local $ wget ht..

[서버/Server] APM 컴파일 설치하기 1/3 - Apache

컴파일 설치를 하는 이유 소프트 스퀘어드에서 내준 첫 과제는 서버를 구축하는 것 이다. 단순히 Linux에 Apache / PHP / MySQL (이하 APM) 세 가지만 깔면 된다고 해서 쉬운 과제일 줄 알았는데, package manager를 사용하지 않고 컴파일 설치만을 요구했다. 그렇다면 왜 컴파일 설치를 해야 하는지 알아보도록 하자. Ubuntu를 예로 들면 apt 혹은 apt-get이라는 패키지 매니저가 있다. 패키지 매니저를 통해 프로그램을 설치하게 되면 OS 종류나 버전에 맞춰 의존성 있는 프로그램들도 같이 설치해준다. 개인적인 목적으로 설치하는 프로그램인 경우에는 패키지 매니저를 이용해 쉽게 설치하면 되나, 회사에서 업무적인 목적으로 설치하는 경우 이것을 막을 수도 있다. 첫 과제 이후로..