我正在尝试通过docker compose在.net服务器上部署前端(angular )和后端( linux )。我已经在各自的文件中创建了两个docker文件。这是我的docker.compos.yml文件。
version: '3.4
volumes:
data:
services:
api:
build:
context: .
dockerfile: Backend/Dockerfile
ports:
- "5000:80"
depends_on:
- db
web:
build:
context: .
dockerfile: Frontend/Dockerfile
ports:
- "80:80"
depends_on:
- api
db:
image: postgres:latest
volumes:
- data:/var/lib/postgresql/data
environment:
POSTGRES_USER: "postgres"
POSTGRES_PASSWORD: "docker_Password"
POSTGRES_DB: "database_name"
ports:
- "5432:5432"
我使用nginx镜像为前端构建提供服务。这是包含基本设置的default.conf文件。
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html =404;
}
}
有了上面的配置,我运行了docker-compose up --build,我可以看到我的登录页面(因为端口80是暴露的,所以我的url就是我的服务器ip)。但是当我尝试登录时,它会向运行在端口5000上的api服务发送一个ajax请求,而当我的前端运行在端口80上并试图访问运行在端口5000上的服务时,我得到了跨域错误。我想做一些事情,让我所有以api path开头的请求(在我的例子中是{server_ip}/api/login) )应该重定向到api服务。在nginx中有什么对请求重定向有帮助的东西吗?
我还尝试在default.conf,的location块中添加以下代码行,但没有成功。
add_header‘访问-控制-允许-来源’'*';
add_header‘访问控制允许方法’'GET,POST,OPTIONS‘
;
https://stackoverflow.com/questions/54815228
复制相似问题