我在我的项目中使用docker compose.它包括以下容器:
- NGINX公司
- PostgreSQL
- 后端(Node.js)
- 前端(SvelteKit)
我使用SvelteKit's Load function
将请求发送到后端.简而言之,它将http request
发送到client-side
或server-side
上的backend
容器.这意味着,请求不仅可以通过浏览器发送,还可以通过容器本身发送.
我无法让它同时在客户端和服务器端抓取上工作.其中只有一个在工作.
我try 了以下URL:
-
http://api.localhost/articles
(仅client-side
个请求工作) -
http://api.host.docker.internal/articles
(仅server-side
个请求工作) -
http://backend:8080/articles
(仅server-side
个请求工作)
我发现这个错误:
从SvelteKit
开始:
从NGINX公司
开始:
Docker-compose.yml
file:
version: '3.8'
services:
webserver:
restart: unless-stopped
image: nginx:latest
ports:
- 80:80
- 443:443
depends_on:
- frontend
- backend
networks:
- webserver
volumes:
- ./webserver/nginx/conf/:/etc/nginx/conf.d/
- ./webserver/certbot/www:/var/www/certbot/:ro
- ./webserver/certbot/conf/:/etc/nginx/ssl/:ro
backend:
restart: unless-stopped
build:
context: ./backend
target: development
ports:
- 8080:8080
depends_on:
- db
networks:
- database
- webserver
volumes:
- ./backend:/app
frontend:
restart: unless-stopped
build:
context: ./frontend
target: development
ports:
- 3000:3000
depends_on:
- backend
networks:
- webserver
networks:
database:
driver: bridge
webserver:
driver: bridge
如何使用http://api.localhost/articles
作为URL向docker container
发送server-side
个请求?如果可能的话,我还希望我的集装箱能被其他集装箱接受.