문제 해결 / 외부 네트워크에서 이 시스템에 접속할 수 없음
시스템 자체는 정상적으로 실행 중이지만 외부에서 접속할 수 없는 경우는 대부분 네트워크 원인입니다.
구체적인 증상은 다음과 같습니다.
- 배포 서버 로컬에서
curl -i http://127.0.0.1:8088실행 시302리다이렉트 정보가 반환됩니다.
| HTTP | |
|---|---|
1 2 3 4 5 6 7 8 9 | |
- 배포 서버 로컬에서
curl http://127.0.0.1:8088/api/v1/do/ping실행 시200정상 데이터가 반환됩니다.
| HTTP | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
- 다른 장치에서
curl -i http://{서버 주소}:8088실행 시 응답이 없거나 연결 거부가 바로 반환됩니다.
이런 문제가 발생하는 경우 대부분 네트워크 문제이며 DataFlux Func 자체와는 무관합니다.
다음 내용은 가능한 해결 방법 중 일부를 기록한 것에 불과합니다.
1. IP / 도메인 이름 해석이 올바르지 않음
다른 장치에서 DataFlux Func가 설치된 서버를 ping하여 IP, 도메인 이름이 올바른지 확인하세요.
DNS를 수정하거나 /etc/hosts 설정을 변경하는 방식으로 해결할 수 있으며, 구체적인 내용은 실제 네트워크 상황에 따릅니다.
2. 방화벽, 보안 설정이 올바르지 않음
다음을 포함하되 이에 국한되지 않습니다.
- 방화벽 설정이 올바르지 않음
- Alibaba Cloud ECS 보안 그룹 설정이 올바르지 않음
- 리버스 프록시 서버, Alibaba Cloud SLB 설정이 올바르지 않음
먼저 현재 배포에서 개방된 포트를 확인합니다.
| Bash | |
|---|---|
1 | |
반환 내용은 다음과 같습니다.
| Text Only | |
|---|---|
1 | |
{개방 포트}는 기본적으로 8088입니다.
네트워크 환경을 확인하고 수정하여 외부에서 서버 포트에 접근할 수 있도록 허용합니다.
3. 로컬 네트워크와 자동 생성된 ingress 서브넷 간의 충돌
다음 명령으로 확인할 수 있습니다.
| Bash | |
|---|---|
1 | |
IPAM.Config.Subnet 값이 로컬 네트워크와 동일한지 확인합니다.
| JSON | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
중복되는 경우 다음 방법으로 수정할 수 있습니다.
- DataFlux Func를 중지합니다.
- 기존 네트워크를 삭제합니다:
sudo docker network rm ingress - 네트워크를 재생성합니다:
docker network create --driver overlay --ingress --subnet 10.255.0.0/16 --gateway 10.255.0.1 ingress -
DataFlux Func를 시작합니다.
- 참고 문서: Docker ingress 네트워크 사용자 지정 구성
4. 커널 포워딩 설정 누락
이 문제는 CentOS 시스템에서 발견된 적이 있지만 대부분의 경우에는 발생하지 않았습니다.
다음 방법으로 포워딩 설정을 확인할 수 있습니다.
| Bash | |
|---|---|
1 | |
- 위 명령이
1을 반환하면 포워딩이 이미 활성화되어 있음을 의미합니다. - 그렇지 않은 경우 다음과 같은 방법으로 포워딩 설정을 활성화할 수 있습니다.
| Bash | |
|---|---|
1 | |