前言

在根目录下创建了data目录,data目录下分别有一个www和img目录(www存放静态html,img存放图片),然后在Nginx配置文件中添加动静分离的配置。启动Nignx后访问192.168.244.128:80/img/一直是404,检查了配置文件确定没有错误
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解决方法

这是因为在docker中启动的Nignx容器,Nginx在访问资源时是访问容器内部中路径的文件,而不是Linux系统中路径的文件。而且docker也没有提供对运行的容器添加挂载文件的功能,所有只能在通过docker exec -it Nginx容器名 bash命令进入Nignx容器内部创建文件,或者
重新创建Nignx容器,在创建的时候将Linux中的data目录挂载到docker中的data目录。启动Nignx容器,此时便可以访问到静态资源了。

1
2
3
4
5
6
7
docker run -d -p 80:80 --name nginx 
-v /root/nginx/html:/usr/share/nginx/html
-v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
-v /root/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf
-v /root/nginx/logs:/var/log/nginx
-v /root/data:/data
Nginx镜像名

在这里插入图片描述
在这里插入图片描述