nginx 在windows上的坑

时间:2024-05-19 20:30:29

昨天试着在 docker 中装了nginx ,照着docker hub 上nginx的教程

nginx 在windows上的坑

写了dockerfile,build 通过,但就是找不到我COPY 进去 的路径。

最后用   docker exec -i -t contailer_name /bin/bash 进入容器中看看 到底 /usr/share/nginx/html 中目录是怎么放的 解决了

今天早上就想 了解下nginx 分发静态文件时的目录到底是怎么弄得,同样··磕磕绊绊的看官方文档,忍着痛苦···

第一个就是介绍 分发静态文件的,说的超级清楚有木有··

nginx 在windows上的坑

匹配时会把 location 后面的URI 加到 root 指令 后面,如果 有多个匹配的,就选最长的,所以·· location / 是最后被匹配的

上手试试?

嗯···在linux  上编辑到底是很麻烦··还是windows 上吧,应该差不多···灾难往往就发生在差不多时。

在 linux 上,路径是 正斜杠 /

在windows 上,路径是反斜杠 \  ,还要加上盘符。

最开始怎么改都没用,就是404 ,nginx -s reload 好多次,后来想着是不是重启下,nginx -s stop 结果竟然关不了··,logs 下的 nginx.pid 都没了··

再资源管理器 里面两个进程··一个master 一个 worker ,怎么搞··

把两个都删了,如果删了worker ,那··master 会重启一个··快到你反应不过来··没办法··多试几次吧

再重启时,就好了。

总结:

1、windows 上运行nginx  分发静态文件,路径必须用反斜杠,而且 location block里 只能用root,不能用alias,

因为 alias 是别名,路径的后面要加 \, 例如 alias C:\11;  访问 localhost/11.jpg,路径会是 C:\1111.jpg,看error.log 就知道了

alias C:\11\; 这样的话··,nginx 语法不通过,所以··只能root

2、 请及时看错误日志

3、还是用linux 比较好,编辑不好用,也可以练练···