如何使用Docker文件覆盖Nginx默认配置?

时间:2019-01-15 09:07:33

标签: docker nginx dockerfile nginx-config

我知道已经有人问过这个问题或类似的问题,但是我已经与之抗争了一段时间。我有一个使用React Router的应用程序,我为它做了docker镜像,并且我正在使用Nginx服务器,并且它正在工作。但是,当我想刷新页面时,我给出了nginx 404错误。我知道我需要覆盖nginx配置文件以使其起作用,但不知道为什么它不起作用。我只是尝试将某种重定向重定向到nginx.conf中,只是为了查看它是否覆盖了default.conf,但它不起作用。这是我的文件:

Dockerfile:

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;
 }

编辑:

以及如何检查正在运行的配置文件?

1 个答案:

答案 0 :(得分:1)

我相信您应该使用

COPY ./nginx/default.conf /etc/nginx/nginx.conf 

如果您想在conf.d/中组织事物,请在include /etc/nginx/conf.d/*中添加/etc/nginx/nginx.conf,然后再在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;
  }
}