프로그래밍 노트/인프라

개요 웹서버에 https를 적용할 경우 인증서가 필요하므로 비용이 발생하게 된다. 테스트 용도로 OpenSSL을 이용하여 SSL 인증서를 발급하는 법을 알아보자. 인증서 발급에 필요한 용어부터 알아보자. Self Signed Certificate(SSC)란? 인증서(Digital Certificate)는 인증기관의 개인키로 인증서 소유자의 공개키를 전자서명한 데이터를 말한다. 모든 인증서는 발급기관(CA)가 있어야하지만 최상위 인증기관(ROOT CA)는 서명해줄 상위 인증기관이 없으므로 개인키로 스스로의 인증서에 서명하여 최상위 인증기관 인증서를 만든다. 이렇게 스스로 서명한 ROOT CA 인증서를 Self Signed Certifcate라고 한다. 브라우저에서는 유명한 ROOT CA들의 인증서를 신뢰하..
nginx 기본 설정 설정 파일 nginx.conf : 기본 환경 설정 mime.types : 파일 확장명과 MIME 타입 목록 fastcgi.conf : FastCGI관련 설정 proxy.conf : 프록시 관련 설정 sites.conf : 엔진엑스에 의해 서비스되는 가상 호스트 웹사이트의 설정. 도메인마다 파일을 분리할 것을 권장 지시어 블록 지시어는 모듈에 의해 도입된다. 새 모듈을 활성화하면 그 모듈에 포함된 지시어들을 사용할 수 있다. # 이벤트 모듈에서 사용하는 환경설정 정보 events { worker_connections 1024; } # 블록은 중첩이 되며, 설정은 자식 블럭에 상속된다. http{ server { access_log /var/log/nginx/example.com.log..
SSL 설정 upstream backend{ # upstream 설정 ip_hash; server 127.0.0.1:9000 fail_timeout=30s; } server{ listen 80; server_name www.corn-sample.com corn-sample.com; location / { root /usr/local/var/www/frontend; index index.html; } location ^~/api { proxy_pass http://backend; } error_page 500 502 503 504 /50x.html; location /50x.html { root html; } } server{ #listen 443; listn 443 ssl; server_name www...
Nginx + Tomcat 연동 Upstream apache를 사용하면 tomcat서버와 AJP설정을 통해서 통신을 하게 되는데, nginx는 tomcat서버와 HTTP 통신을 하게된다. Nginx는 Upstream이란 지시자를 사용하며, reverser proxy 역할을 하게된다. upstream이란 무엇일까? Upstream 서버는 다른 말로 Origin 서버라고도 부른다. 여러대의 컴퓨터가 순차적으로 어떤 일을 처리할 때 어떤 서비스를 받는 서버를 의미한다. 위의 그림에서 업스트림 서버는 PHP-FPM이 설치된 서버이고, Nginx는 DownStream 서버라고 할 수 있다. Upstream Module 업스트림 모듈은 Nginx에 내장된 모듈로 부하분산, 속도 개선과 같은 역할을 할 수 있게 한다..
nginx에 가상호스트틀 설정해보자. 호스트 도메인은 corn-sample.com이다. hosts 파일 수정 127.0.0.1 corn-sample.com 127.0.0.1 www.corn-sample.com 가상호스트 설정 가상호스트 파일은 별도의 디렉토리에 두는 것이 보기 좋으니 nginx conf 홈파일에 servers라는 디렉토리를 만들어서 nginx.conf파일에 servers 디렉토리 파일을 include하게 한다. # /usr/local/etc/nginx/nginx.conf http{ ... include servers/*; # 가상호스트설정파일 경로 추가 } # /usr/local/etc/nginx/servers/corn-sample.conf server { listen 80; server..
Apache는 모든 개발자들에게 친근할 거다.(Nginx에 비해) Nginx가 왜 요즘 뜨고있는 HTTP서버인지, 자료를 조금 조사해보았다. (왜냐면 이제 Nginx 사용해볼거거든..) Apache Apache는 Client 요청을 받으면 MPM(Multi Processing Module : 다중처리모듈)이라는 방식으로 요청을 처리하며 대표적으로 Prefork와 Work방식이 있다. Apache 2.4에 Event 방식이 나왔지만, Worker방식과 비슷한것으로 알고있다. 아닌가? 일단 스레드/프로세스 기반구조에 대해 알아보자. 스레드/프로세스 기반 구조 ServerSocket으로 request A가 들어오면 Thread를 할당해 준다. Thread는 그 socket을 가지고 read, write 작업(..
아파치가 버전이 업될때 마다, 살펴볼 것이 많고 설정파일도 무척 복잡하여 nginx를 써보기로 했다. nginx가 가볍고 설정파일이 아파치에 비해 무척 쉽다는 소문만 들었다.. 삽질을 시작해보자. 일단 내 PC인 맥북에 nginx를 설치해보자! 홈브루(homebrew) 설치 사실 macOS에 많이 익숙하진 않다. 홈브루(homebrew)는 yum, apt-get 과 같은 패키지 관리 프로그램이다. 맥북에 설치해보자 $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" terminal에 위의 명령어를 복붙해서 실행하면, 쭈르르륵 뭔가 설치되는 것이 보인다.. 주르륵 내려가다가 "Press RETU..
프록시란? 프록시(Proxy)란 '대리'라는 의미를 갖고 있으며, 서버와 서버사이의 중계기역할을 한다. 보안상의 이유로 직접 통신할 수 없는 두 점사이에서 대리로 통신을 수행하는 기능을 가리켜 '프록시'라고 하며, 프록시서버로 부른다. Forward 프록시 프록시 서버를 '클라이언트 호스트들과 원격 리소스 사이'에 위치시키는 방법 프록시 서버는 클라이언트가 요청한 리소스를 원격 리소스에서 가져와서 클아이언트에게 돌려주는 역할을 수행한다. 만약 캐시가 있다면, 다음 요청시에는 캐시된 데이터를 제공해준다. 이 방식은 대역폭을 감소시킬 수 있다는 것과 접근 정책 구현에 있어 다루기 쉬우면서 비용도 저렴하다는 장점이 있어 기업환경에서 많이 사용한다. ex) 기업 사내망에서 특정 url에는 접근을 못하게 하는 방..
웹서버의 ssl(https)설정은 무척 복잡하다. ssl_module관련된 directive들이 자세히 나와있는 글들이 별로 없는데, 아주 좋은 블로그를 발견하여서 참고해서 작성하였다. (사실 거의 똑같다..) 존경합니다. (출처 : https://golmong.tistory.com/170) 설정 지시자(configuration directive) SSLPassPhraseDialog Apache가 시동될 때 SSL이 적용된 각 virtualhost에 대한 Certificate와 Private Key를 읽어온다. 보안을 위해서 Private Key들은 암호화되어 있으며, 따라서 mod_ssl은 관리자에게 암호화된 PrivateKey를 복호화하기 위해서 Pass Phrase를 요구한다. Builtin exe..
... ... 디렉토리 제어문의 시작은 로 시작해서 로 끝난다. Options FollowSymLinks : 실볼릭 링크를 허용한다. Includes : SSI를 허용한다. MultiViews : 클라이언트의 요청에 따라 적절하게 페이지를 보여준다. 쉽게 생각하면 HTTP 헤드 정보가 Accept-Language:ko 라면 Korea 언어에 맞게 데이터를 클라이언트에 전송한다. Indexes : 웹 서버의 디렉토리에 접근 했을 때 DirectoryIndex 지시자로 설정한 파일이 없을 경우 디렉토리안의 파일 목록을 보여준다. None : 모든 설정을 부정한다. AllowOverride AllowOverride는 클라이언트의 디렉토리 접근 제어에 관한 설정이다. AllowOverride 는 AccessFi..
깡냉쓰
'프로그래밍 노트/인프라' 카테고리의 글 목록 (3 Page)