トラブルシューティング / 外部ネットワークから本システムにアクセスできない
システム自体は正常に動作していますが、外部からアクセスできない場合は、そのほとんどはネットワークが原因です。
具体的には次のような症状です:
- デプロイサーバー上で
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 | |