如何用docker文件覆盖nginx默认配置?
我知道已经有人问过这个问题或类似的问题,但我已经为此奋斗了一段时间。我有一个使用react路由器的应用程序,我为它制作了docker镜像,我正在使用nginx服务器,它正在工作。但是,当我想刷新页面时,我给出了nginx404错误。我知道我需要覆盖nginx配置文件使其工作,但不知道为什么它不工作。我试图重定向到nginx.conf,只是想看看它是否超过了default.conf,但它不起作用。这是我的文件: Dockerfile:如何用docker文件覆盖nginx默认配置?,docker,nginx,dockerfile,nginx-config,Docker,Nginx,Dockerfile,Nginx Config,我知道已经有人问过这个问题或类似的问题,但我已经为此奋斗了一段时间。我有一个使用react路由器的应用程序,我为它制作了docker镜像,我正在使用nginx服务器,它正在工作。但是,当我想刷新页面时,我给出了nginx404错误。我知道我需要覆盖nginx配置文件使其工作,但不知道为什么它不工作。我试图重定向到nginx.conf,只是想看看它是否超过了default.conf,但它不起作用。这是我的文件: Dockerfile: FROM nginx:alpine COPY ./nginx/
FROM nginx:alpine
COPY ./nginx/default.conf /etc/nginx/conf.d/default.conf
COPY --from=build /app/build /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
nginx.conf
server {
listen 80 default;
server_name localhost;
return 301 https://www.google.com;
}
编辑:
以及如何检查正在运行的配置文件?我认为您应该使用
COPY ./nginx/default.conf /etc/nginx/nginx.conf
如果要在conf.d/
中组织内容,请在/etc/nginx/nginx.conf/*
中添加include/etc/nginx/conf.d/*
,然后再在conf.d/
中添加内容
完整配置文件:
worker_processes 4;
events {
worker_connections 1024;
}
http {
server {
listen 80 default;
server_name localhost;
return 301 https://www.google.com$request_uri;
}
}
我相信你应该使用
COPY ./nginx/default.conf /etc/nginx/nginx.conf
如果要在conf.d/
中组织内容,请在/etc/nginx/nginx.conf/*
中添加include/etc/nginx/conf.d/*
,然后再在conf.d/
中添加内容
完整配置文件:
worker_processes 4;
events {
worker_connections 1024;
}
http {
server {
listen 80 default;
server_name localhost;
return 301 https://www.google.com$request_uri;
}
}
你用什么url访问容器?localhost-我用docker run破坏容器-p 80:80 FrontEnd你用什么url访问容器?localhost-我用docker run破坏容器-p 80:80 FrontEnd你能试试这个配置文件吗?也许nginx未能启动感谢您的帮助,但仍然无法解决此问题。。。不要认为它失败了,因为刷新时我从nginxyea收到404错误我在复制代码时犯了错误,我现在编辑了,但这不是问题,我的Nginx配置仍然没有超过默认配置我的dockerfile与你的相同,我的工作正常。检查以确保它不是另一个运行的nginx,重建映像并运行它。我做了所有这些,删除所有未扫描的映像(有两个不同的nginx),然后重建并运行它,现在只有一个正在运行,仍然不起作用。您可以尝试此配置文件吗?也许nginx未能启动感谢您的帮助,但仍然无法解决此问题。。。不要认为它失败了,因为刷新时我从nginxyea收到404错误我在复制代码时犯了错误,我现在编辑了,但这不是问题,我的Nginx配置仍然没有超过默认配置我的dockerfile与你的相同,我的工作正常。检查以确保它不是另一个运行的nginx,重建图像并运行它。我做了所有这些,删除所有未显示的图像(有两个不同的nginx),然后重建并运行它,现在只有一个正在运行,仍然不起作用