我目前正在尝试在 Docker 容器中配置 nginx,以便localhost:3000
在导航到 时重定向到localhost:8080
。来自阅读文档似乎我需要映射端口将请求重定向到容器中的端口 80。但是,当我基于以下 Dockerfile 构建镜像时:
FROM alpine
RUN apk --no-cache add nginx
COPY ./nginx.conf /etc/nginx/nginx.conf
RUN mkdir -p /run/nginx
EXPOSE 80 443
CMD ["nginx", "-g", "daemon off;"]
并使用以下命令运行将端口 8080 映射到端口 80 的容器:
docker run -p 8080:80 nginx-server
当我导航到时,localhost:8080
我没有被重定向到 localhost:3000,并且我得到了
localhost didn’t send any data.
经过一番挖掘,我似乎需要更改我的 nginx 配置以指向proxy_pass http://host.docker.internal.但是,这不起作用,当我向 localhost:8080 发出请求时,我什么也没得到。这是我的 nginx 配置:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 127.0.0.1;
server_name localhost;
location / {
proxy_pass http://host.docker.internal:3000;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
include servers/*;
}
知道我做错了什么吗?