본문 바로가기

# Development/DevOps

(19)
[Nginx] 같은 도메인에 다른 어플리케이션(WAS) 연결: location 추가하기 같은 도메인에 다른 어플리케이션(WAS) 연결: location 추가하기 운영하고 있는 AWS EC2 인스턴스에 Flask 백엔드(어플리케이션A)가 돌아가고 있었는데, 동일한 도메인에 크롤링용 Flask 백엔드(어플리케이션B)를 하나 더 추가했다. 간단한 설정인데 본인은 삽질을 오래해서 다른 사람들은 편히 설정하길 바라는 염원을 담아 글을 썼다. 결론부터 얘기하자면, systemd에 추가하려는 어플리케이션B 등록한 다음, 기존에 돌아가고 있는 어플리케이션A의 nginx 설정 파일에 location을 추가해주면 된다. systemd 서비스 등록 우선 아래 글을 참조해서 새로 추가하고자 하는 어플리케이션B를 nginx 설정 전까지(git clone - python 가상환경 어플리케이션 설정 - uWSGI 설..
[Nginx] Ubuntu Nginx SSL 인증서 설정하기 (HTTPS 연결) Ubuntu Nginx SSL 인증서 설정하기 (HTTPS 연결) SSL 인증서란? SSL에 관한 설명은 아래의 글로 대체한다. [Network] HTTP, HTTPS 어떤 차이가 있지? HTTP, HTTPS 어떤 차이가 있지? HTTP(HyperText Transfer Protocol) 하이퍼 텍스트 전송 프로토콜(HyperText Transfer Protocol)의 약자로 웹에서 정보를 주고 받을 수 있는 프로토콜이다. 주로 HTML 문서를 주고 받는데 yoon001.tistory.com Ubuntu Nginx 환경에 SSL을 적용하기 위해서는 SSL인증서를 받은뒤, Nginx 환경 설정 파일에 SSL 정보를 추가해주면 된다. 환경설정 파일 위치는 Ubuntu에 기본 설정된 버전(1.18.0)으로 a..
[Nginx] Header Server 정보 수정하기, 지우기 Header Server 정보 수정하기, 감추기 Nginx를 사용하는 ununtu 서버에서 보안을 위해 Header의 Server 정보를 숨기고 싶을 때, 아래의 3가지 방법을 통해 Server 정보를 단계적으로 숨길 수 있다. 1. nginx 버전 정보 숨기기 2. Server 데이터 대체 하기 3. Server 헤더 삭제하기 nginx.conf 기본 설정 확인 Server Header 정보는 nginx.conf 파일에서를 수정할 수 있다. 보통 ubuntu에서 /etc/nginx/nginx.conf 위치에 있다. nginx.conf 기본 설정 user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/ngi..
[Nginx] ubuntu 환경에서 Flask 배포하기 (Github, uWSGI, Socket) ubuntu 환경에서 Flask 배포하기 (Github, uWSGI, Socket) 사전준비 패키지 매니징 툴 apt(Advance Packging Tools) 업데이트 $ sudo apt update Git에서 소스코드 다운로드 1. Git 설치 $ sudo apt install git 2. Git 초기화 프로젝트를 시작하고 소스 코드를 Git으로 관리하고자 한다면 먼저 git init으로 저장소를 초기화 해야 한다. 저장소로 사용하고자 하는 디렉터리로 이동한 다음 git init을 실행한다. $ git init 3. 소스코드 주소 복사 GIhub 홈페이지에서 가져올 프로젝트 주소 복사 (프로젝트 화면 > Code > Code > Clone > HTTPS) 4. git clone $ git clone ..
[Nginx] Nginx란 무엇인가? Nginx란? Nginx는 웹 서버 및 리버스 프록시 서버로 사용되는 경량 웹서버 오픈소스 소프트웨어다. 다중 클라이언트 요청을 비동기적으로 처리하여 높은 처리량과 낮은 지연 시간을 보장 메모리 사용량도 매우 적어서 리소스 효율성이 뛰어남 Nginx 활용 방법 HTTP Web Server로 활용 클라이언트로부터 요청을 받았을 때 요청에 맞는 정적 파일을 응답한다. Reverse Proxy Server로 활용 WAS 서버의 부하를 줄일 수 있는 로드 밸런서로 활용한다. ** Revere Proxy 외부 클라이언트에서 서버로 접근 시, 중간에서 중개자 역할을 하여 내부 서버로 접근할 수 있도록 도와주는 서버 Nginx 특징 웹서버로 주로 Apache와 Nginx가 사용되는데 두개는 큰 차이점이 있다. Apa..
[WSGI] WSGI란? WSGI (Web Server Gateway Interface) python으로 작성한 Django, Flask와 같은 웹 프레임워크에서 Apache, Nginx 같은 웹 서버와 통신할 때 사용하는 프로토콜이다. WSGI 특징 1. 파이썬 스크립트가 웹 서버와 통신하도록 도와준다. 2. 웹 서버와 웹 애플리케이션 사이에 위치한다. 🔮 웹 서버 - Apache, Nginx - 웹 서버는 html, image등 정적인 파일, 소스 등을 처리함 🔮 웹 앱 - Django, Flask와 같은 파이썬 프레임 워크 - 동적인 요청을 처리해서 웹 서버에 처리한 결과를 돌려줌 WSGI는 서버와 앱 사이에서 callable object를 통해 웹 서버 요청해 대한 정보를 웹 앱에 전달 CGI 2003년까지 사용하던 파이..
[AWS EC2] 인스턴스 중지 및 시작 인스턴스 중지 및 시작테스트 서버가 먹통이 되어 인스턴스를 중지 후 재시작 했는데 Putty 접속이 되지 않았다.  인스턴스 대시보드에서는 실행중으로 잘 돌아가고 있었고, 인스턴스 스크린샷, 시스템로그를 확인 해봐도 인스턴스는 잘 작동하고 있었다. 인스턴스 중지 공식문서를 확인해보니 탄력적 IP 주소를 적용하지 않아서 생긴 문제였다. 탄력적 IP 주소를 할당해주지 않으면 인스턴스 중지 후 재시작 할 때 새로운 퍼블릭 IPv4 주소가 생성된다. https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/Stop_Start.html Amazon EC2 인스턴스 중지 및 시작 - Amazon Elastic Compute Cloud인스턴스를 중지하면 인스턴스 스토어 ..
[Ubuntu] 리눅스 우분투 Cron(크론), Crontab(크론탭) 설정 리눅스 우분투 Cron(크론), Crontab(크론탭) 설정 매일 특정 시간에 API를 호출해야 하는 작업이 있어서 우분투에서 crontab에 작업을 추가했다. 멀티태스킹이 가능한 운영체제에서 사용자에 의해 제어 및 관리되지 않고, Background Process로 돌며 작업을 수행하는 프로그램을 Daemon(데몬)이라 한다. Daemon의 프로세스들은 보통의 Foreground Process의 프로그램들과 구분되기 위해 이름의 끝에 'd' 를 포함한다. 리눅스에서 지정한 스케쥴에 맞춰 작업을 수행 하는 데몬을 Cron(크론)이라고 하고,이 Cron이 수행할 작업과 스케쥴을 설정해 명령 리스트를 만드는 것을 Crontab(크론탭)이라고 한다. 이 기능을 사용하면 24시간 동작하는 서버에서 특정 시간에 ..