我试图在amazon服务器上设置web服务器的环境。我想使用django,react,nginx,它们在每个码头容器上运行。
下面是运行坞容器的命令。
sudo docker run --name django-server
-it -d -p "8000:8000"
--volume=$(pwd)/trello-copy-django-src:/backend/trello-copy
django-server
sudo docker run --name nginx-server
-d -p "80:80"
--volumes-from react-server
nginx-server我没有指定自定义码头网桥,我通过输入$ docker inspect bridge检查它们是否位于相同的默认网桥上。
[{
"Name": "bridge",
...,
"Containers": {
"...": { "Name": "django-server", ... },
"...": { "Name": "react-server", ... },
"...": { "Name": "nginx-server", ... },
}
}]所以,我希望下面的反应代码能正常工作。但是它只在我的笔记本电脑上工作,它和aws的对接结构完全一样。
...
const res = await fetch('http://127.0.0.1:8000/api/');
...Failed to load resource: net::ERR_CONNECTION_REFUSED 127.0.0.1:8000/api/:1
我做错了什么?
这些是我的django settings.py文件中的代码。
CORS_ORIGIN_ALLOW_ALL=True # only for dev
CORS_ALLOW_CREDENTIALS=True # only for dev
CORS_ORIGIN_WHITELIST = (
'http://localhost',
'http://localhost:3000',
)CORS的消息是App.js:10 Fetch API cannot load django-server:8000/api/. URL scheme must be "http" or "https" for CORS request.。
我认为这是不同的问题,然后django和CORS并不是真正的问题..。我说的对吗?
我发现ajax await fetch('http://127.0.0.1:8000/api/');的“localhost”实际上意味着客户端(浏览器)。
我必须在那里使用服务器的公共IP吗?
发布于 2020-03-25 06:22:55
你不能用127.0.0.1打电话。相反,需要使用正在运行的容器的名称。如下所示:
const res = await fetch('django-server:8000/api/');https://stackoverflow.com/questions/60843785
复制相似问题