docker 安装的nginx 的默认配置
1配置文件 /etc/nginxnginx.conf
- 会默认引入conf.d 下的所有以 *.conf结尾的文件
- 指定log 目录 /var/log/nginx/access.log
2 default.conf 配置
- 指定了默认访问的index.html 路径 为 /usr/share/nginx/html
3 还有一种情况下 conf.d 下面为空的 则引入的为
则引入的 默认的index.html 在/var/www/html 下
重启服务
sudo service nginx restart
疑难杂症之 启动 映射主机无法访问
docker run -p 8080:80 --name nginx_web2 -v /var/log/nginx/:/var/log/nginx -v /home/kk/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/share/nginx/html/:/usr/share/nginx/html nginx
这样启动 一直 在主机无法访问 经过测试 发现在 nginx.conf 里如果 直接把server 写在 http内部 而不是通过include引入 则没问题, 改成include引入方式则无法正常显示,原因暂时未知
下面无法访问
下面可以访问
找到问题所在啦!!!!
重点在于 我们只是对 nginx.conf 做了 内外映射, 那么当执行nginx.conf时候其实是把这个文件读取到container内部执行 所以nginx里写的 include /etc/nginx/mime.types;
实际上是 内部的路径,而不是外部的路径!!!!
nginx 配置 header 头部之 content-type
是通过 include /etc/nginx/mime.types; 引入,会根据不同的请求 资源类型 返回不同的 contenttype, 这很关键,比如 我们写死 返回头为 text/plain 则 在返回其他如json 或者 样式 文件 就会客户端不识别