题 如何在nginx中指定Windows文件路径


我正在使用nginx的官方Windows版本。我想指定相当于此配置的窗口

location /static/ {
   alias /home/user/staticfiles/;
}

如何在别名指令中指定Windows文件路径?这有可能吗?


21
2017-08-03 17:43






答案:


这些答案必须过时。使用具有正斜杠的nginx 1.3.8绝对路径可以正常工作。反斜杠似乎有效,但应加倍。如果他们不是那么一些,比如尾随 \" 从字面上看。

location /static/ {
    # alias "C:\\foo\\bar\\...\\static\\";
    alias "C:/foo/bar/.../static/";
    expires 90d;
}

可能不需要引号,但在嵌入空间的情况下它们似乎是个好主意。

我注意到的另一件事是,匹配url和别名路径与尾部斜杠的结尾是否很重要 - 不匹配并且它不起作用。


14
2017-11-08 03:53



仍然适用于nginx 1.8.1 - Daniel
你使用引号处理空格的建议帮助了我很多! - Beat


如果你试图指定像......这样的绝对路径

location / {
    alias C:\Users\SomeUser\mysite\static;
}

...然后在从该位置请求文件时,您可能会在C:\ nginx \ logs \ error.log中看到错误,如:

2011/11/11 12:53:16 [error] 6236#0: *1 open() "/cygdrive/c/nginx/C:\Users\SomeUser\mysite\static\somefile.css

在Windows上配置nginx时,请指定相对于C:\ nginx目录的任何路径。这有效:

location / {
    alias ../Users/SomeUser/mysite/static;
}

就个人而言,我很高兴学到这一点,因为它使我的nginx配置在Windows和Linux之间比我预期的更容易移植。要将Linux配置文件转换为适用于Windows的文件,对我来说基本上只是:

s|/home/myname/|../Users/Myname|

5
2017-11-11 21:09



这适用于nginx 1.9.10,谢谢! - NenadP


你可以试试这个:

  1. 将静态文件复制到nginx / html / staticfiles中
  2. 设置为nginx.conf

    location / static / {     alias / nginx / html / staticfiles /; }


2
2017-08-03 19:11





似乎别名对我的Windows系统根本不起作用。我试着打字

alias "c:"

但即使这样也行不通。在nginx重新加载配置文件后,我找不到输出位置的方法。因此,不要在Windows中为nginx使用别名。


1
2017-10-26 09:33



对于nginx 1.5.6,以下设置有效: alias ../../cde/folder;,假设您的nginx.exe位于d:/ abc / nginx,但您尝试别名的文件夹位于d:/ cde / folder。一些消息来源提到nginx是硬编码的路径 /cygdrive/c/nginx/, 在这种情况下 alias /cygdrive/d/path/ 应该使用,但这对我不起作用。还值得一提的是,别名路径末尾的正斜杠不应该被忽略。 - TonyTony
我正在尝试将nginx.conf从linux迁移到win10。 nginx可执行文件位于C:\ nginx中,而服务文件位于D:/ bellaria_web / haus。上下文'根D:/ bellaria_web / haus /;'似乎没有用。有人可以解释什么是错的吗? - aag