본문 바로가기

개발환경/Web Server10

Web Server 성능 및 Load 측정 Tool: Apache AB (Apache Http Server Benchmarking Tool) 웹 서비스를 구축하고 웹 서버에 동시 접속하는 경우에 대해서 신뢰성과 안정성을 확인할 때 Web Server Benchmaking tool을 사용해서 Load Test를 진행해야 합니다. Web Server에 대한 벤치마킹 테스트 툴은 Apache AB와 JMeter를 활용할 수 있습니다. 본 블로그는 AB를 설명하고자 합니다. Apache AB(ApacheBench) Apache AB는 Apache Websever의 성능 측정을 휘한 Command line Tool로 현재 모든 웹 서버를 테스트할 수 있을 정도로 많이 사용하고 있습니다. 서버의 응답 속도를 명령어 한줄로 측정할 수 있습니다. 전체적인 내용은 아래 유튜브 동영상에 상세하게 설명되어 있습니다. 출처: https://www.youtube.c.. 2021. 9. 13.
Website 전체 백업 방법: HTTrack (티스토리 백업에 활용) 웹 사이트에 있는 html, images, javascript 등의 파일을 PC에 백업할 때 사용할 수 있는 툴인 HTTrack 를 소개합니다. HTTrack 은 웹사이트를 GPL 라이선스의 오픈소스로 개발하고 있으며 우분투, 윈도우, Mac 등의 여러 OS에서 무료로 사용할 수 있습니다. HTTrack은 URL을 입력하면 링크를 분석하여 웹 상에 있는 파일(이미지, JS 파일, 첨부파일)을 모두 다운로드하고 폴더 구조까지 '그대로' 컴퓨터로 저장합니다. 컴퓨터에 저장된 파일은 인터넷 브라우저를 통해서 백업한 내용을 원형 그대로 확인할 수 있습니다. 각 문서에서 연결된 링크 또한 로컬에 저장된 문서로 변경됩니다. 한 가지 주의해야 할 점은 웹 사이트 링크 개수에 따라서 백업 시간이 오래 걸립니다. 예를 .. 2020. 11. 2.
우분투 20.04에서 Flask를 서비스 등록: 부팅 시 자동 실행 이전 Post에서 Flask Web 서버를 설명을 했고, 본 포스팅은 우분투 20.04에서 Flask Web 서버를 서비스 형태로 등록하는 방법입니다. Flask Web server를 우분투의 서비스로 등록했을 때 장점은 아래와 같습니다. Flask Web 서버를 재 부팅 시 자동 실행 가능 Flask Web 서버가 crash가 발생했을 경우 자동으로 재 실행 쉽게 Flask 서비스의 시작, 정지, 상태 확인, 재 시작 우분투에서 서비스 등록하기 위해서는 systemctl을 사용하며 아래 2단계 과정이 필요합니다. /lib/systemd/system 에 service configuration파일 작성 - 서비스 실행 파일, 부팅 시 실행 조건, 실행 권한 등을 설정 systemctl 명령어로 서비스 등록.. 2020. 8. 24.
Python: Web Framework Flask 사용하기 Python의 Web framework인 Flask을 활용해서 간단한 Web 서버와 REST API를 처리할 수 있습니다. 또한 Python Flask를 활용하면 Python 언어의 장점인 편리함을 그대로 활용 가능하며, 간단한 Web Application을 구성할 수 있습니다. Flask에 대한 개념 및 예제 코드에 대한 설명은 아래 동영상은 참고해주세요. Flask의 공식 사이트는 샘플 코드 및 설명을 제공합니다. Flask 개념 및 설명 (출처: https://www.youtube.com/watch?v=s_ht4AKnWZg) 1. Flask 설치 Python이 설치된 상태에서 pip로 flask 모듈을 추가 설치합니다. # macOS/Linux $ sudo pip3 install flask # Wi.. 2020. 8. 18.
우분투 20.04에서 lighttpd의 fastcgi 개념 및 사용법 Web server에서 CGI는 하나의 요청(request)에 하나의 프로세스를 생성한다. 이것은 프로세스를 생성하고 제거하는 과정에서 많은 부하가 발생하기 때문에 성능이 느릴 수 있습니다. 이를 개선한 것이 'FastCGI'입니다. FastCGI는 요청이 있을 때마다 프로세스가 만들어지는 것이 아니라 만들어진 프로세스가 계속해서 새로운 요청들을 처리하여 프로세스를 생성하고 제거하는 부하를 줄일 수 있습니다. 개념은 아래 lighttpd 문서를 참고해주세요. * 출처: /usr/share/doc/lighttpd/fastcgi.txt CGI programs have the problem that they have to be restarted by the webserver for every request w.. 2020. 8. 10.
Web 서버 GET/POST CGI 사용법 (QUERY_STRING / CONTENT_LENGTH) 이전 포스팅에서 ① 우분투 20.04에서 lighttpd 설치 ② CGI 모듈 enable 및 설정 파일을 설명했습니다. 본 포스팅은 HTTP의 GET과 POST Method에 대응하는 CGI 프로그램 작성 방법에 설명하고자 합니다. CGI 프로그램으로의 정보 입력은 명령줄 인수, 환경변수, 표준 입력에 의해 이루어지며, GET METHOD 인 경우에는 QUERY_STRING을 통해서 파라미터를 얻을 수 있고, POST METHOD 인 경우네는 CONTENT_LENGTH와 표준 입력에 parmeter를 전달받을 수 있습니다. CGI 프로그램으로의 정보 입력은 명령줄 인수, 환경변수, 표준 입력에 의해 이루어진다. 특히, 클라이언트가 서버에 요구한 URI의 안, 검색문자열(Query String)이 환경변.. 2020. 8. 7.
우분투 20.04에서 lighttpd CGI 설정 방법 및 C와 Python 예제 코드 CGI (Common Gate Interface)는 사용자 Browser에서 URL 요청을 받아서 Web 서버의 특정 위치의 프로그램을 실행하도록 하는 표준 규약을 의미합니다. 이전 포스팅에서는 lighttpd 설치 방법에 대해서 설명했고, 본 포스팅에서는 CGI의 최소 프로그램인 Hello world로 출력하는 방법에 대해서 설명하고, 다음 포스팅에서 GET과 POST Mehtod의 사용법에 대해서 설명할 예정입니다. 위키백과에서는 CGI를 다음과 같이 요약하고 있습니다. 중요한 키워드로 '환경 변수', '표준 입력', 'QUERY_STRING (GET method)', 'CONTENTS LENGTH (POST method)' 정도로 설명할 수 있습니다. CGI 프로그램은 웹 서버가 클라이언트로부터 요.. 2020. 8. 6.
우분투 20.04에서 lighttpd Web Server 설치 (Embedded용으로 활용 가능) Apache Web Server 가 가장 오래 사용되어 왔고, Web Server의 점유율 또한 1등 입니다. 하지만 Apache Web서버는 기능적으로 풍부하기 때문에 다소 무거운 감이 있어 제한된 리소스에서 동작하는 임베디드 시스템에는 적합하지 않습니다. 임베디드 시스템에 사용하기 위해서는 ① Web Server 자체가 경량화되어 작아야 하며, ② ARM으로 cross-compile이 가능하고, ③ 상용화하는 경우 오픈 소스 라이선스에 문제가 없어야 합니다. 이러한 조건을 만족하는 Web server 중 하나가 lighttpd (발음: 라이팃)입니다. lighttpd는 Revised BSD 라이선스로 GPL과는 달리 상용화 시 수정한 부분에 대해서 소스 전체를 오픈할 의무가 없습니다. ** 참고 내용.. 2020. 8. 6.
우분투 20.04에서 Apache와 Tomcat 완전 삭제 방법 우분투에서 Apache와 Tomcat 구동이나 설정 오류가 있어 해당 패키지를 재 설치하는 경우, 또는 Nginx나 lighttpd와 같은 새로운 Web Server를 설치하는 경우 기 설치된 Apache와 Tomcat을 '완전' 삭제해야 합니다. # 현재 구동 중인 services list 확인 - apache2 구동 확인 $ sudo service --status-all service --status-all # apache2 서비스 중지 $ sudo service apache2 stop # apache2와 tomcat9 삭제 (purge option은 설정 파일까지 삭제하는 옵션임, remove는 설정 파일은 유지함) $ sudo apt purge tomcat9* $ sudo apt purge apa.. 2020. 8. 3.
우분투 20.04에서 Web 서버 설치 방법 (apache2, tomcat9) 우분투에서 Web 서버 설치하는 방법은 많은 포스팅이 있어, 각각의 개념 보다는 package 설치에 필요한 메모 정도로 활용하고자 한다. 설치 동기는 REST API를 사용하다보면 구글 서버에서 redirect URL을 설정해야 하고 이 경우 http://localhost가 동작을 할 수 있도록 Web server (apache2와 tomcat9)를 설치해야 한다. 1. java 설치 확인 $ java --version openjdk 14.0.1 2020-04-14 OpenJDK Runtime Environment (build 14.0.1+7-Ubuntu-1ubuntu1) OpenJDK 64-Bit Server VM (build 14.0.1+7-Ubuntu-1ubuntu1, mixed mode, sha.. 2020. 7. 6.