[REDIS] 레디 스 - 원격 서버에 연결
REDIS레디 스 - 원격 서버에 연결
난 그냥 성공적으로 내 우분투 10.10 서버에 http://redis.io/topics/quickstart에 빠른 시작 가이드의 지침을 사용하여 레디 스를 설치했습니다. 내가 dameon으로 서비스를 실행하고있어 (이있는 init.d에 의해 운영 될 수 있도록)
서버는 내부 및 외부 IP를 랙 스페이스 (Rackspace) 클러스터의 일부입니다. 호스트 포트 6379에서 실행 (레디 스에 대한 표준)
아래 그림과 같이 I 포트 6379에서 들어오는 연결을 허용하기 위해 iptables에의 행을 추가했습니다 :
ACCEPT tcp -- anywhere anywhere tcp dpt:6379
다른 서버에 내 PHP 코드에서, 나는 여기에 새로운 레디 스 서버에 연결을 시도하고있다 :
$this->load->helper("iredis");
$hostname = "IP ADDRESS HERE";
$redis = new iRedis(array('hostname' => $hostname, 'port' => 6379));
내가 이렇게되면 - 난 항상 거부 연결을 얻을. 내 redis.conf 파일에서 나는 로컬 호스트 IP보다 더 청취해야하므로, 로컬 바인드 명령을 주석 처리합니다. 나는 다른 서버에 그냥 로컬 시스템에서 데이터베이스에 연결할 수 있습니다. 나는 행운과 외부 및 내부 IP를 시도했습니다.
일이 점점에 대한 어떤 제안?
해결법
-
==============================
1.첫째로 나는 당신이 될 것으로 예상되는 IP를에서 수신 확인 확인 것입니다 :
첫째로 나는 당신이 될 것으로 예상되는 IP를에서 수신 확인 확인 것입니다 :
netstat -nlpt | grep 6379
당신이 시작하는 방법에 따라 / 당신이했다고 생각했을 때 실제로 인스턴스를 다시 시작하지 않았을 수 있습니다 중지합니다. 당신이 생각 청취 경우, NETSTAT는 당신을 말할 것이다. 그렇지 않은 경우, 반드시 다시 시작할을 다시 시작합니다. 당신이 기대하는 곳 수신하지 여전히 다시 시작하고, 그냥 확인하기 위해 설정 파일을 확인합니다.
당신이 액세스 시도를해야 원격 노드에서, 그것을 기대하는 곳 수신 대기 설정 한 후 :
redis-cli -h REMOTE.HOST ping
당신은 또한 당신이 그것을 대신 호스트 이름 또는 로컬 호스트의 수신 대기 할 것으로 예상되는 IP를 로컬 호스트에서 해당 시도하지만 사용할 수 있습니다. 당신은 두 경우 모두 응답 탁구 볼 수 있습니다.
그렇지 않은 경우, 방화벽 (들)을 /를 차단한다. 이 지역 IPTables에 또는 아마도 노드 사이에 방화벽이 될 것입니다. 당신은 무슨 일이 일어나고 있는지보고 6379을 통해 연결을 로그온 할 때의 iptables 구성에 로깅 문을 추가 할 수 있습니다. 또한, 시도 그는 같은 IP 로컬과 로컬이 아닌 것은 예시한다에서 핑 레디 스. 이 원격으로 로컬이 아닌 응답하는 경우, 당신에 노드 IP 테이블 규칙의 복잡성에 따라 방화벽 개입으로 의지 할 것입니다.
-
==============================
2.저도 같은 문제에 붙어 있었고, (잘 쓰여진 불구하고) 위의 대답은 나에게 도움이되지 않았다.
저도 같은 문제에 붙어 있었고, (잘 쓰여진 불구하고) 위의 대답은 나에게 도움이되지 않았다.
이 솔루션은 여기에 있습니다 : 당신의 /etc/redis/redis.conf을 확인하고 기본값을 변경해야합니다
bind 127.0.0.1
에
bind 0.0.0.0
그런 다음 서비스 (서비스 레디 스 서버를 다시 시작)를 다시 시작
그러면 이제 비 - 로컬 인터페이스에서 수신되는 레디 스를 확인하실 수 있습니다
redis-cli -h 192.168.x.x ping
(당신의 IP 주소로 192.168.x.x 대체)
중요 사항 : 여러 사용자가 명시된 바와 같이, 그것은 인터넷에 노출 된 서버에서이 설정을 안전하지 않습니다. 당신은 당신의 요구에 맞는 어떤 수단을 보호 레디 스 것을 확신해야한다.
-
==============================
3.Orabîg에 의해 주어진 우수한 대답에 추가 :
Orabîg에 의해 주어진 우수한 대답에 추가 :
나는 완전히 바인드 부분을 제거하고 더에 보호 모드를 설정하지하여이 문제를 해결.
#bind 127.0.0.1 protected-mode no
공개적으로 노출 된 서버에서이 방법을 사용하지 마십시오.
-
==============================
4.Orabig 올바른 것입니다.
Orabig 올바른 것입니다.
그런 다음 손님 우분투 호스트에서 포트 포워딩을 우분투 (버추얼 박스)에서 10.0.2.15를 바인딩 할 수 있습니다.
/etc/redis/redis.conf에서
bind 10.0.2.15
다음, 다시 시작 레디 스 :
sudo systemctl restart redis
그것은 작동된다!
-
==============================
5.
-
==============================
6.60 TCP-킵 얼라이브 설정 서버의 레디 스 구성에 (그것은 0으로 설정했다) 내가이 문제를 해결 도왔다.
60 TCP-킵 얼라이브 설정 서버의 레디 스 구성에 (그것은 0으로 설정했다) 내가이 문제를 해결 도왔다.
from https://stackoverflow.com/questions/8537254/redis-connect-to-remote-server by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 당신은 아마존의 아마존 Elasticache 레디 스의 외부로 연결할 수 (0) | 2019.12.31 |
---|---|
[REDIS] MurmurHash - 그것은 무엇인가? (0) | 2019.12.31 |
[REDIS] Express.js은 무엇인가? (0) | 2019.12.30 |
[REDIS] 레디 스 그냥 캐시인가? (0) | 2019.12.30 |
[REDIS] 레디 스에 사용되는 기본 데이터 구조는 무엇입니까? (0) | 2019.12.30 |