題目の通りです。
Docker上に構築したNodejs+expressのWEBサーバにつながりません。
確認したこと
前提:
・VPS
・CentOS7
- docker0のネットワークは 172.17.0.1
- nodejsでは 3000port を listenしている
- firewall-cmd --reload は行った
- ホスト上で curl 172.17.0.1:3000 では期待通り レスポンスが帰る
- ブラウザから VPSのip:3000 と接続するとタイムアウトする
- 同時に立てている nginx のサーバ(80番)にはブラウザ接続できる
NodeJS index.jsの定義
var express = require('express'); var app = express(); var server = app.listen(3000, function(){ console.log("Node.js is listening to PORT:" + server.address().port); }); var photoList = [ { id: "001", name: "photo001.jpg", type: "jpg", dataUrl: "http://localhost:3000/data/photo001.jpg" },{ id: "002", name: "photo002.jpg", type: "jpg", dataUrl: "http://localhost:3000/data/photo002.jpg" } ] app.get("/", function(req, res, next){ res.json(photoList); });
firewall-cmd --list-allの定義
public (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: dhcpv6-client http https ssh ports: 3000/tcp protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules:
Docker のプロセス一覧
IMAGE COMMAND CREATED STATUS PORTS NAMES node "node index.js" 14 seconds ago Up 14 seconds 0.0.0.0:3000->3000/tcp docker_node_run_13 nginx:latest "nginx -g 'daemon off" 54 minutes ago Up 54 minutes 0.0.0.0:80->80/tcp, 443/tcp docker_proxy_1 nginx:latest "nginx -g 'daemon off" 9 days ago Up 55 minutes 80/tcp, 443/tcp docker_nginx_1 redis:3 "docker-entrypoint.sh" 9 days ago Up 55 minutes 6379/tcp noderedis
回答2件
あなたの回答
tips
プレビュー