NGINX – 특정 IP 차단하거나 허용하기

가끔 포트번호가 아닌 도메인 단위로 차단이 필요한 경우가 있다. 이럴 때 nginx 가상호스트 설정에 아래와 같은 내용을 추가하면 된다.

예를 들어 192.168.0.7 만 허용하고 다른 모든 아이피에 대해 차단하려면

server {
        allow 192.168.0.7;
        deny all;
        ...
}

이와 같이 Nginx 가상호스트 설정 변경하고 서버를 재시작 혹은 이미 시작한 경우 설정 리로드를 하면 된다.

$ sudo systemctl reload nginx

실무에서 사용하기 위한 docker 활용법 – private docker registry 구축하기

docker 를 알아보다 보면 슬슬 실무에 적용해 보고 싶어지는데요. 실제로 배포등을 처리하려면 docker hub 가 필요합니다. 하지만 docker hub 는 계정당 1개만 private 저장소를 지원하는데요.

이를 해결하기 위해서는 자체적으로 구축한 도커 저장소가 있는게 아무래도 편하겠죠?

더 보기 “실무에서 사용하기 위한 docker 활용법 – private docker registry 구축하기”

[링크] MongoDB 텍스트 검색 속도 향상 시키기

아직 한글에서도 제대로 되는지는 테스트해보지 못했다.

현재 MongoDB 는 풀텍스트 검색(Full-text search)에서 한국어 지원을 하고 있지 않다. ㅜㅜ

아래 링크 내용의 결론은 풀텍스트 검색과 regex 검색을 같이 해서 검색속도록 향상시키는 방식이다.. 문제는 몽고디비에서 한글을 풀텍스트 검색을 하는 경우 매우 제한적인 결과만 나오기 때문에 크게 의미가 없다.. 차라리 쓸데없는 것까지 검색된다면 regex 검색으로 걸러줄 수 있을 텐데..

https://medium.com/statuscode/how-to-speed-up-mongodb-regex-queries-by-a-factor-of-up-to-10-73995435c606

네이버 클라우드 플랫폼 무료서버 사용해보기

오늘 기존에 개인 계정으로 가입해 사용하던 AWS 프리티어가 곧 만료된다는 이메일을 받았다.

그래서 그냥 5달러내고 AWS 라이트세일을 쓸까하다가..

다른 무료 서버호스팅을 찾아보게되었는데…

갑자기 네이버 클라우드 플랫폼 무료 서버가 생각나서 사용해보기로 했다.

네이버 클라우드 플랫폼 https://www.ncloud.com/

더 보기 “네이버 클라우드 플랫폼 무료서버 사용해보기”

기존 서버호스팅에서 AWS 로 이전하기

이번에 이용중이던 서버호스팅사에서 서버가 SSD 하드웨어 고장으로 웹서버가 뻗어버렸습니다. ㅜㅜ

호스팅사의 대충처리때문에 장장 12시간 넘게 걸려서 복구했네요.

결국 애초에 조만간에 할 걸로 계획중이던 AWS (아마존웹서비스) 이전을 강제로 하게 되었습니다. 

작업내용을 간단히 기록해 둡니다. 

더 보기 “기존 서버호스팅에서 AWS 로 이전하기”

Nginx + WordPress – 413 Request Entity Too Large 오류 해결하기

보통 파일 업로드시 많이 발생하는 문제입니다.

다음과 같이 설정값을 변경하고 nginx 서버를 재시작하면 간단히 해결할 수 있습니다.

$ sudo vi /etc/nginx/nginx.conf
http {
  ...(중략)...

  # 아래 줄을 추가하면 됩니다.
  client_max_body_size 256M;

  ...(중략)...

}

nginx 서버 재시작하기

$ sudo systemctl restart nginx

만약 위와 같이 변경해도 계속해서 에러가 난다면 client_max_body_size 용량을 상황에 맞게 더 늘리거나 줄이면 됩니다.

위의 경로는 모두 우분투(Ubuntu) 리눅스 기준입니다.

docker 이미지 저장 경로 변경하기

docker의 경우 이미지 때문에 기본적으로 용량을 많이 차지한다. 그래서 기본 파티션이 용량이 작은 경우 추가로 붙인 볼륨의 파티션으로 경로를 변경해줄 필요가 있다.

먼저 아래와 같이 도커 설정 파일을 만든다.

$ sudo vi /etc/docker/daemon.json

설정 파일에 아래와 같은 json 형식으로 설정값을 지정하면 된다.

{
    "graph": "/원하는/경로"
}

마지막으로 docker 서비스를 재시작하면 된다.

$ sudo systemctl restart docker

이제 해당 경로로 가보면 docker 에서 생성한 여러 폴더들을 볼 수 있다.

$ cd /원하는/경로
$ ls -al
total 0
drwx--x--x 14 root root 182 Jan 14 18:11 ./
drwxr-xr-x  3 root root  20 Jan 14 16:11 ../
drwx------  2 root root  24 Jan 14 18:11 builder/
drwx------  4 root root  92 Jan 14 18:11 buildkit/
drwx------  2 root root   6 Jan 14 18:11 containers/
drwx------  3 root root  22 Jan 14 18:11 image/
drwxr-x---  3 root root  19 Jan 14 18:11 network/
drwx------  3 root root  40 Jan 14 18:11 overlay2/
drwx------  4 root root  32 Jan 14 18:11 plugins/
drwx------  2 root root   6 Jan 14 18:11 runtimes/
drwx------  2 root root   6 Jan 14 18:11 swarm/
drwx------  2 root root   6 Jan 14 18:11 tmp/
drwx------  2 root root   6 Jan 14 18:11 trust/
drwx------  2 root root  25 Jan 14 18:11 volumes/

이런식으로 나오면 정상적으로 경로가 변경된 것이다.

이렇게 하면 서버의 용량 부족 문제를 해결할 수 있다 ^^
만약 한창 사용중이라면 docker 서비스를 중단한후 rsync 로 이동시키면 사용할 수 있을것으로 예상해 본다.

알 수 없는 Docker 오류 해결하기

이래저래 써먹어 보려고 Docker 를 테스트 해보다 보니 이미지 생성, 강제 삭제 등을 여러번 하다가 의존성이 깨진건지 이상한 에러가 발생하기 시작했다.

$ docker-compose build
...

$ docker-compose up
Recreating 1695e5fd230f_www1204dcokr_web_1

ERROR: for web  no such image: sha256:d6aeb5065849265e872ed19e5f5831b9bccc9ddd5f0d73d577c4102d27668a63: No such image: sha256:d6aeb5065849265e872ed19e5f5831b9bccc9ddd5f0d73d577c4102d27668a63
ERROR: Encountered errors while bringing up the project.

위와 같이 docker-compose 를 이용해 build 후 up 수행을 하면 이상한 에러를 뱉어내면서 중단된다.

이럴 때 해결할 수 있는 방법으로 아래와 같이 도커 리셋을 해보는 것이다. (root 계정으로 수행한다.)

# docker stop $(docker ps -a -q); docker rm $(docker ps -a -q); docker volume rm $(docker volume ls -qf dangling=true)

# docker network rm(docker network ls -q)

참조 : https://github.com/docker/compose/issues/3277#issuecomment-247964243

Nuxt.js Docker 작업 시 오류 해결 하기 – Module not found: Error: Can’t resolve ‘core-js/modules/es6.array.find’ in ‘/src/.nuxt’

Module not found: Error: Can't resolve 'core-js/modules/es6.array.find' in '/src/.nuxt'

Docker 이미지를 만들다가 위와 같은 에러가 무수히 많이 나는 경우가 있다. 일반적인 개발환경에서는 오류가 발생하지 않는데 docker 이미지로 만들때만 오류가 발생해 참 힘들게 한다.

이를 해결 하기 위해서는 다음과 같이 core-js 패키지를 추가해 주면 해결 된다.

$ yarn add --dev core-js

이렇게 하고 다시 도커 이미지를 빌드하면 정상적으로 빌드가 된다.

이와 비슷한 오류가 있는데 그경우도 webpack 을 추가해주면 해결된다.