Docker安装Nginx,启动报错:open() “/etc/nginx/mime.types“ failed,问题分析及解决


博客地址

完整报错信息:nginx: [emerg] open() “/etc/nginx/mime.types” failed (2: No such file or directory) in /etc/nginx/nginx.conf:17

问题分析:根据该报错信息可知,是nginx配置中的mime.types文件找不到了

如图在nginx配置文件中使用include导入了mime.types文件,但是现在报错找不到该文件。
第一个解决方法就是删除或注释该行,亲测删除或注释后nginx可正常启动。
启动之后使用如下命令进入容器内部,在/etc/nginx目录下发现mime.types文件是存在的

那么为什么会报错找不到该文件呢???

思考之后发现:本人是使用docker部署nginx并配置ssl证书,因此在宿主机创建了cert目录将证书放到里面,然后启动是挂载该目录

-v /home/cert:/etc/nginx

因此这样子挂载之后,nginx启动是加载mime.types时就会到宿主机的/home/cert文件下面找mime.types,而该目录下没有,因此报错。

为了验证上述猜想:本人在宿主机cert文件中将mime.types文件添加进去,然后使用之前的启动命令,同样将-v /home/cert:/etc/nginx进行挂载,这次就可以正常运行了。

因此导致上述问题发生的原因,就是因为在启动时挂载目录方法不对导致,原本nginx容器中是存在该文件的,但是因为我们将容器中nginx目录和宿主机目录挂载,这时nginx就会到宿主机中寻找该文件。
为了避免上述问题,我们在挂载目录时为了不影响其他文件访问,可以将宿主机目录挂载到容器中新创建的目录中。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]中的Dockerfile代码片段展示了在构建Docker镜像时覆盖默认的nginx.conf文件的过程。通过将新的nginx.conf文件复制到/etc/nginx/目录下,可以覆盖原来的默认配置文件。此外,还将dist文件夹复制到/usr/share/nginx/html/目录下,并将default.conf文件复制到/etc/nginx/conf.d/目录下。还创建了一个新的目录/opt/nginx/logs/tools.msxf.lo/和一个初始化的echo语句。这段代码的目的是在构建镜像时设置nginx的配置和目录结构。 引用\[2\]中的nginx.conf文件展示了nginx的配置内容。其中包括设置用户为root,自动设置worker_processes,定义错误日志和进程ID文件的位置,设置事件模块的worker_connections数量,包含mime.types文件,设置默认的文件类型,定义日志格式和访问日志位置,开启sendfile和keepalive等功能,包含其他配置文件。 引用\[3\]中的代码片段是关于获取/etc/nginx/conf.d/default.conf文件的校验和的信息。它涉及到检查默认的nginx.conf文件的权限和当前用户的权限,并提供了一些关于使用qemu-user-static编译支持arm架构的docker镜像的相关信息。 根据你的问题,"Getting the checksum of /etc/nginx/conf.d/default.conf"是在获取/etc/nginx/conf.d/default.conf文件的校验和。这个过程可能是为了验证文件的完整性或进行其他操作,但具体目的需要根据上下文来确定。 #### 引用[.reference_title] - *1* *2* *3* [常看:华为服务器问题记录docker nginx](https://blog.csdn.net/weixin_41127362/article/details/127653563)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值