【问题标题】:How to overwrite nginx default config with docker file?如何用 docker 文件覆盖 nginx 默认配置?
【发布时间】:2019-06-09 06:38:50
【问题描述】:

我有一个使用 React 路由器的应用程序,并为它创建了一个 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;
 }

编辑:

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

【问题讨论】:

  • 你使用什么 url 来访问容器?
  • localhost - 我正在用 docker run -p 80:80 前端破坏容器

标签: docker nginx dockerfile nginx-config


【解决方案1】:

我相信你应该使用

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

【讨论】:

  • 你可以试试这个配置文件吗?可能 nginx 启动失败
  • 感谢您的帮助,但仍然没有解决它...不要认为它无法午餐导致刷新我从 nginx 收到 404 错误
  • 是的,我复制代码时出错了,我现在编辑了,但这不是问题,我的 ngix conf 仍然没有覆盖默认配置
  • 我的 dockerfile 和你的一样,我的作品。检查以确保它不是另一个运行的 nginx,重建映像并运行它。
  • 我做了所有这些,删除了所有 unsed 图像(有两个不同的 nginx),然后重建它并运行它,现在只有一个在运行,仍然不起作用
猜你喜欢
  • 2020-03-19
  • 1970-01-01
  • 1970-01-01
  • 2020-09-22
  • 2021-04-11
  • 2020-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多