본문 바로가기

Server에 해당하는 글들

52 Articles matched
목록이 없습니다.
[docker] 컨테이너 이미지화 (Docker container to image) docker를 사용해서 서버를 구성하다 보면 기본적인 os를 올려두고 그 위에 각자 목적을 구현하기 위해서 여러가지 어플리케이션을 docker container 안에 올리는 경우가 많은데요. 구성한 container들을 양산할 때 아주 유용한 것이 바로 container를 image화 하는 작업입니다. Docker container to image docker를 설치하고 기본 이미지를 다운로드해서 원하는 서버를 구성했다는 가정하에 간단하게 진행하겠습니다. 1) docker 종료 # docker stop '컨테이너 이름 또는 아이디' 2) 컨테이너의 이름 또는 아이디를 알아냄 # docker ps -a 3) 컨테이너 이미지화 # docker commit -a 'jjy' container_id image_n..
[Ubuntu] xrdp 재시작 xrdp의 설정을 수정했거나 재시작해야하는 경우가 때떄로 발생합니다. 그런데 재시작을 했는대도 불구하고 원격 프로그램을 통해서 접속이 안되는 경우가 있습니다. ps -ef | grep xrdp 명령어를 통해서 나오는 프로세스들을 모두 kill 명령어를 통해 종료시켜 주었음에도 재시작이 안되는 경우 인데요. 문제 해결을 위해서는 남아있는 pid를 제거해주어야 합니다. 무슨 소리인가 하면, xrdp는 pid를 파일로 남겨놓는 습성이 있습니다. 따라서 이 파일을 제거해야 xrdp가 비로소 완벽하게 종료된 겁니다. 해결방법 1) xrdp 프로세스들의 pid 확인 # cat /var/run/xrdp/xrdp-sesman.pid # cat /var/run/xrdp/xrdp.pid 2) xrdp 프로세스 강제 종료 ..
net::ERR_CONTENT_LENGTH_MISMATCH 크롬을 활용해서 웹 개발을 하다가 보면 크롬의 콘솔에서만 등장하는 몇몇 에러 메시지들이 있습니다. 그중에 오늘 다룰 에러 메시지는 net::ERR_CONTENT_LENGTH_MISMATCH 이라는 에러 메시지입니다. 크롬의 콘솔에서 저런 에러가 발생하는 것이 발견되었다면 그건 서버에서 웹 리소스를 보내줄 때 실제 컨텐츠의 길이와 response안에 헤더에 설정되어있는 Content-Length가 다르기 때문입니다. 이게 무슨말이냐 하면 쉽게 설명하기 위해서 그림으로 풀어보았습니다. 위의 상황에서 클라이언트 영역에서는 할 수 있는게 없습니다. 서버에서 Content-Length를 제대로 설정해주는 작업이 필요합니다. 보통 상황의 경우 발생하지 않는 에러이지만 이런 에러는 서버측에서 Content-Lengt..
[Elasticsearch] 업데이트 시 해당 document 존재여부에 따라 update(script) or create Elasticsearch(이하 ES)는 보통 쌓인 데이터들을 ES구조로 컨버팅해서 대용량의 데이터를 인덱싱하여 빠르게 찾아볼 수 있도록 하는데 많이 사용되는데 이번 프로젝트 같은 경우에는 ES를 DB 처럼 사용해보았습니다. ES에 바로 데이터를 insert, update, delete를 하는 로직을 짜보았는데요, 그러다가 update 과정에서 벽에 부딪혔는데 해결 방법을 찾아서 정리해보려고 합니다. update를 하는데 처음에 로직을 기존 RDB처럼 해당 문서의 ID로 조회하여 문서의 존재 여부를 판단하고 없으면 insert(ES에서는 create문)를 존재하는 경우 update문을 날리도록 하였습니다. 그런데 서로 다른 여러 서버에서 쿼리문을 날리다보니 조회하는 시점에는 없던 문서였는데 다른 서버에서는..
[apache2] virtualhost로 여러 사이트 배포하기 spring framework가 올라가있는 소스를 배포할 때 보통 Tomcat을 올려 Maven을 통해 배포하는데 최근에 서버를 이전하면서 나누어져있던 어플리케이션들을 통합하는 작업이 있었습니다. 각 어플리케이션들의 도메인이 전부 달랐지만 한 서버에 어떻게 해야할지 고민이 될텐데 이럴 때 Tomcat 앞에 Apache를 두어 가상호스트(VirtualHost)를 통해서 iptables 설정 없이 라우팅을 해주면 됩니다. 해당 작업은 root 권한으로 수행해주기 위해서 root 사용자로 변경해줍니다. $ su root apache 설치 우선 apache를 설치해줍니다. # apt-get update # apt-get install apache2 정상적으로 설치되었다면 서버 ip로 접속해보면 아파치기본화면이 ..
jenkins 버전업 회사에서 젠킨스를 활용해서 배포를 하고 있는데 최근에 SonarQube라는 정적 코드 분석 플러그인을 붙이기 위해서 플러그인을 설치하려고 보니 젠킨스 버전이 낮아서 플러그인이 설치가되지 않는 상황이 벌어졌습니다. 그래서 젠킨스 버전업 하는김에 버전업하는 방법을 정리해놓으려고 합니다. 우선 jenkins.war 파일이 어디있는지 찾아야 하는데요 설치했던 사람이라면 어디있는지 알겠지만 모른다면 find 명령어를 통해서 찾아야합니다.. (어디있는지 아시는분은 생략하셔도 됩니다) jenkins.war 파일 찾기 # find / -name 'jenkins.war' 새로운 jenkins.war 파일 다운로드 jenkins를 다운로드 받을 수 있는 경로는 http://mirrors.jenkins-ci.org/ 입니다..
[Ubuntu] 용량 확인 전체 용량 확인 # df -h 디렉토리별 용량 확인 # du -h 현재 목록 용량 확인 # du -h --max-depth=1
[docker] 부팅 시 자동으로 컨테이너 실행하도록 설정 ※ docker를 조작가능한 권한이 필요합니다. root권한으로 작업하거나 docker를 조작할 수 있는 권한을 사용하는 서버 user계정에 부여해주신 후에 아래 작업을 진행해주시기 바랍니다. 데몬 등록 systemd를 통해 실행할 도커 컨테이너를 데몬으로 설정한다. # cd /etc/systemd/system 위의 디렉토리로 이동하면 여러 .service 파일이 있는데 원하는 이름으로 .service파일을 만들어 준다 ## dc_elastic.service [Unit] Description=docker elasticsearch Service After=docker.service Requires=docker.service [Service] TimeoutStartSec=0 Restart=always Exe..