728x90

nginx 에서 mirror 모듈을 쓰기 위해 사용중인 버전 (1.12.x) 에서

해당 모듈을 지원하는 최신 버전으로 업데이트를 했습니다.

 

특별히 문제가 없겠지라고 생각했지만 역시 문제가 생겼으며

에러 메세지에서 단서를 찾아볼 수 있었습니다. =_=

 

sudo systemctl status nginx 명령으로 에러 원인 확인!

에러의 내용을 붙여넣어 보자면 아래와 같습니다.

기본적으로 설치된 모듈의 버전과 업데이트를 통해 설치된 버전이 차이가 있었던 것 같습니다.

적절한 경로의 버전을 로딩하게 하는 방법을 찾는 것보다 더 쉬운 방법은 없을까 찾아보니 역시 있더군요.

 

[emerg] module "/usr/lib64/nginx/modules/ngx_http_geoip_module.so" version 1012002 instead of 1016000 in /usr/share/nginx/modules/mod-http-geoip.conf:1

 

모듈로 인한 문제가 발생했을 때 가장 쉽게 처리하는 방법은 재설치!

yum 을 이용해서 nginx 공식 레파지토리를 썼기 때문에

일단 현재의 모든 모듈을 삭제하고 공식 레파지토리의 모듈로 재설치를 진행했습니다. 

 

// 설치된 모듈을 삭제합니다
$ sudo yum remove nginx-mod*

// 공식 레파지토리에서 새로운 모듈을 설치합니다
$ sudo yum install nginx-module-*

 

이후 nginx 를 재기동하니 문제없이 로딩 완료!

참고로 공식 레파지토리를 이용하기 위해서는 

아래와 같이 레파지토리 정보를 등록하시면 됩니다. 

mainland 버전을 사용하지 않는다면, 두번째의 섹션은 불필요합니다.

 

// 경로 : /etc/yum.repos.d/nginx.repo
// 참고 : http://nginx.org/en/linux_packages.html#RHEL-CentOS

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key

 

 

 

728x90
728x90

mysql 8.x 이전 버전에서는 발생하는 이슈인지 조사를 해보진 못했습니다만

최소한 mysql 8.x 버전에서는 이 문제가 발생할 수 있는 상태입니다. 


제 경우 Grafana 에서 mysql 데이터 소스를 만들던 도중 에러를 만났고

소개해 드리는 링크에서 나온 것처럼 Go 로 만든 배치 스크립트에서는

동일한 이슈가 생기지 않았습니다.


// 에러메세지

this authentication plugin is not supported


문제는 강화된 보안 체계로 인해 외부 어플리케이션에서 사용되는 mysql 관련 모듈이

mysql 8.x 의 기본 값으로 설정된 패스워드 보안 알고리즘을 맞추지 못해서 발생하는 문제로 보입니다. 


해결 방법은 여러가지가 있지만 mysql 인스턴스 전체에 영향을 주지 않는 방법으로

사용자 단위로 패스워드 보안 정책을 변경하는 것이 가장 좋아 보입니다.


// mysql 8.x 의 기본 사용자 비밀번호 정책

caching_sha2_password


// 이슈 해결을 위한 비밀번호 정책

mysql_native_password



사용자 단위로 이를 적용하기 위해서는 alter user 를 사용하면 됩니다.

에러메세지를 만난 사용자를 대상으로 명령 수행후 에러가 사라진 것을 확인할 수 있으실 겁니다.


mysql> alter user 대상유저@'%' identified with mysql_native_password by '새비밀번호';


# 몇 가지 다른 대안까지 소개되고 있는 글 : https://github.com/go-sql-driver/mysql/issues/785


728x90

+ Recent posts