인프라 21

Nginx HTTP Server 1장 정리

PCRE 라이브러리 엔진엑스를 컴파일 하는데 PCRE 라이브러리가 필요하다. 엔진엑스의 URL Rewrite 모듈, HTTP 모듈은 PCRE를 정규식 구문에 사용한다. pcre pcre-devel 두 가지 패키지를 설치하는게 기본적이다. zlib 라이브러리 zlib 라이브러리는 압축 알고리즘을 개발자에게 제공하낟. 엔진엑스에서 gzip 압축을 하는데 필요하다. zlib zlib-devel 두 가지 패키지를 설치하는게 기본적이다. openssl 라이브러리 강력한 범용 암호 라이브러리와 함께 보안 소켓 계층과 전송 계층 보안 프로토콜을 구현한다. openssl openssl-devel 패키지가 필요하다. nginx 컴파일 옵션 --with-cc C컴파일러 대체 위치를 지정 한다. --with-cpp C++ ..

인프라/nginx 2021.11.17

Ansible 사용하면서 삽질 경험, 약간의 팁

예약어를 변수명으로 썼을때 이슈 예약어가 존재하는데, 예약어를 변수명으로 쓰면 arguments를 넘겨줘도 값 대입이 안된다. ex) host_vars/main.yml role: “{{ role_name }}”-e “role_name=test” 했더니 값에 role에 해당하는 이름이 계속 들어가서 알게 됨. ansible -m shell 모듈 관련 ansible -m shell로 tomcat을 실행시켜도 모듈 실행이 끝나면 꺼지는데, nohup을 같이 줘야 하는 이유는 왜일까… shell script file자체가 daemon으로 실행하는데도…? 이 부분은 검색을 해야봐야 할듯. roles 하위 role에 remote_user 지정 경고 [DEPRECATION WARNING]: Using 'rem..

인프라/Ansible 2020.11.07

Jenkins 설치 전 확인 할 정보

Jenkins version 선택하기 jenkins download url : http://mirrors.jenkins-ci.org/ 위 주소에서 war-stable에 있는 리스트에 있는 버전을 선택하는 것이 가장 탁월한 선택이다. 허나, jenkins는 매주 업데이트 하는 것으로 알려져 있고, Stable version은 3개월 단위의 버전 업데이트 집합이라고 할 수 있다. 고로, stable version이라고 해서 다 안전한 버전인 것은 아니다. https://jenkins.io/changelog-stable/ 이 주소에서는 stable 버전에 대한 업데이트 내용과 함께 괜찮은지에 대한 투표를 할 수 있다. 여기에서 참고하는 편이 stable 버전 선택에 도움을 준다. Jenkins download..

인프라 2020.11.07

Apache Core dump 이야기 (Tomcat AJP연동시 깨알팁)

위 내용은 상당히 오래 전에 겪었던 일화입니다. 현재는 nginx를 쓰고 있습니다. 😱 어느 날 이슈가 발생했다! [Fri Oct 27 20:12:49 2017] [notice] Apache/2.2.31 (Unix) mod_jk/1.2.41 configured -- resuming normal operations [Fri Oct 27 20:12:49 2017] [notice] child pid 87300 exit signal Segmentation fault (11) [Fri Oct 27 20:12:55 2017] [notice] child pid 87301 exit signal Segmentation fault (11) [Fri Oct 27 20:13:00 2017] [notice] child pid ..

인프라 2020.09.09

긴급하게 적용 했던, rewrite/redirect 이야기

원래는 긴급하게 작업을 해야 할 이유가 거의 없긴 하지만, 갑자기 오늘 불현듯이 인프라 설정을 바꿔야 했는데, 그 이유는 현재 서비스 중인 프로젝트의 플랫폼이 레거시와 2년전의 신규 플랫폼, 다시 최신의 플랫폼 총 3가지를 쓰고 있는데, 아무래도 서비스가 워낙 많고, 플랫폼 전환 하려면, 일정을 받아야 하는데, 그게 마음대로 쉽지 않다 보니 2년전의 플랫폼도 어느새 레거시가 되었다. 그런 작업을 계속 해오고 있는데, 오늘 작은 실수를 발견 하게 되어, 긴급하게 처리를 하게 되었다. 그 처리는 특정한 uri path로 접근을 하지 못하게 막거나? 아니면, 정상적인 경로로 이동 시켜야 하는 일이었다. 사실, nginx에서는 그게 그렇게 어렵진 않은데, 중요한 부분은 nginx를 빌드 하여 사용하는 경우 기본..

인프라/nginx 2020.08.13

Ansible로 Tomcat 설정 파일을 선택적으로 배포 해보기

ansible의 기초 지식이 있다는 전제 하에 설명을 진행 합니다. 우선 아래와 같은 구조가 있다고 생각하자. ansible-playbooks - group_vars - host_vars - inventory - roles - deploy_config - pc - api - mobilerole기반의 playbooks를 모아두기 위한 구조이다. 내가 속한 팀에서 위와 같은 디렉토리 구조를 잘 쓰고 있다. (더 좋은 방법이 있다면, 알려주시면 좋겠습니다.) tomcat, apache, nginx, logstash, elasticsearch, kafka등과 같은 모든 툴들에는 설정 파일이 필요하다. 그리고 관리 해야 하는데, 나는 주로 해당 서버에 쓰이는 설정은 같은 디렉토리에 넣어둔다. pc에 관련한 tom..

인프라/Ansible 2020.04.08

[짠내나는 팁] hostname과 nginx server domain mapping 삽질(찬조출연: ansible)

왜 이런 삽질을 시도 했나? 회사에서 개발 서버들은 모두 VM(Virtual Machine)을 사용하고 있다. 그런데, 이것도 사실 비용이기 때문에, 여러 개발 서버를 모두 띄우기 쉽지 않다. (물론, 요즘은 도커를 이용하는 방법이 있다.) 다만, 배보다 배꼽이 더 큰 환경 설정이 필요로 하다. 그럴때는 그냥 가상 머신이 제일 간편한데, 보통은 서버수는 적게 받아 가상 호스트를 이용해 개발 서버를 여러대인 것 처럼 사용한다. 대다수의 서버들을 환경 설정 자동화를 하곤 했는데, 서버가 몇 없는 개발 서버만 유독 수작업을 해줘야 했다. (사실 찾아보기 귀찮았다.) 그래서 가상 호스트 도메인과 호스트 네임을 이용해 nginx server의 server_name을 설정 하는 방법을 찾았다. (예전에는 왜 이런 ..

인프라/Ansible 2020.01.08

mod_rpaf module 모듈 ansible로 설치 하기

mod_rpaf 모듈이 필요한 경우 apache 2.2.x를 사용하는데, proxy server를 거치는 경우 client-ip가 바뀐다. 그럴때, 해당 모듈을 사용하면 되는데, apache 2.4.x에서는 mod_remoteip.so가 아마 있어서 해당 모듈을 사용하면 된다. apache httpd 2.2.x를 사용하는 경우 설치 (with ansible) ansible-playbook을 기준으로 하는데, 보통 role을 구성해서 사용하는 편이다. 그러나, 해당 작업은 apache setting과의 의존이 있기 때문에 하나의 task로 분리해서 만들었다. 원래는 role을 구성하는 것이 더 좋다. ansible-playbook을 어떤 것인지 모르겠다면, ansible document를 참고 하면 된다...

인프라/Ansible 2019.07.20