最近在使用Docker配置的nginx访问静态资源时出现404的情况。

一开始以为是配置文件中资源路径写错导致的问题,因此按照官方文档重新配置资源路径,确定没有产生错误后进行重试,还是出现404的状况。

因为出现了404,因此很大可能是因为对应的路径不存在静态资源,于是去查看配置文件映射的静态资源路径。

此时想到因为是使用的docker安装的nginx,因此在挂载的卷中所写的root资源路径应该是对应的nginx容器中的linux下的路径,所以当然找不到对应的文件。

所以正确的路径应该是找linux容器中存放静态资源的路径。

(-v /opt/docker/nginx/html:/usr/share/nginx/html \)

因为nginx中存放静态资源的文件被挂载到了/opt/docker/nginx/html目录下,所以此时应该将静态资源放到/opt/docker/nginx/html目录下,而对应的配置文件中的路径应该写容器中linux中的路径/usr/share/nginx/html,此时可以正确的访问静态资源路径。

location /www/ {
        # root   /usr/share/nginx/html;
        root  /usr/share/nginx/html/;
        index  index.html index.htm;
        # proxy_pass http://cluster;
        # proxy_pass http://192.168.56.11:8080;
        # proxy_pass http://myserver;
    }
​
    location /image/ {
        root  /usr/share/nginx/html/;
        autoindex  on;
    }
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐