DB/Redis

[Redis] 인스턴스 실행오류,bind 오류

으르리 2021. 6. 22. 13:23

Redis 6.2.4버전을 사용중입니다.

 

reids를 사용할때 여러 서버에서 통신을 지원하기 위해 bind 값을 수정하여 실행하였더니,

인스턴스가 실행이 되지않았습니다..ㅠ.. bind값은 건드렸을 때 뭔가 제대로 안먹히는 경우가 8할인 것 같습니다..

 

로그를 확인해 보니 다음과 같은 로그를 만났습니다..

# oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
# Redis version=6.2.4, bits=64, commit=00000000, modified=0, pid=24593, just started
# Configuration loaded
* monotonic clock: POSIX clock_gettime
# Warning: Could not create server TCP listening socket n.n.n.n:6379: bind: Cannot assign requested address
# Failed listening on port 6379 (TCP), aborting.

그러니까 소통이 안된다 이말이군요..

 

연결할 인스턴스가 많지 않을때는 포트번호를 명시해주면 해결이됩니다.

bind n.n.n.n:6379 m.m.m.m:6379

평소엔 저도 이방법으로 해결을 했습니다만..

이번엔 연결할 인스턴스가 꾀많은지라.. 저방법이 힘들 것 같아 찾아보니 일단 다음과 같은 방법이있습니다.

1.NETWORKING_IPV6을 비활성화

# /etc/sysconfig/network 
NETWORKING=yes
NETWORKING_IPV6=no
IPV6INIT=no
HOSTNAME=localhost.localdomain

 

파일을 수정해준뒤

# disable-ipv6.conf 

# touch /etc/modprobe.d/disable-ipv6.conf
# echo "install ipv6 /bin/true" >> /etc/modprobe.d/disable-ipv6.conf

해당 파일를 생성 하거나 내용 입력합니다.

# lsmod | grep ipv6

리부팅 후 ipv6 모듈 disable 확인해서 아무것도 뜨지않으면 됩니다.

 

출처-> https://faq.hostway.co.kr/?mid=Linux_ETC&page=7&document_srl=1472

 

그런데 저는 이미.. 비활성화가 되어있었습니다..ㅠ....

 

2.bind 모든 ip오픈

가장 심플한 방법이죠.. 보안성이 좀 떨어지긴하지만 conf파일을 열어 bind를 다음과 같이 설정해 줍니다.

bind 0.0.0.0

모든 서버에서 접근이 가능하도록 열어주는 방법이죠.

 

현재로써는 많은 인스턴스를 연결하기위해선 이방법 밖에 없는 것 같습니다ㅠ

혹 다른 방안이 업데이트가 된다면 추가하도록 하겠습니다.

 

참고- https://github.com/redis/redis/issues/5055

반응형