如何在Nginx中指定Windows文件路径


22

我正在使用Nginx的官方Windows版本。我想指定与此配置等效的Windows

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

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

Answers:


17

这些答案必须是过时的。使用带有正斜杠的nginx 1.3.8绝对路径可以正常工作。反斜杠似乎有效,但应加倍。如果不是,则按\"字面意义使用一些内容,例如结尾。

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

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

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


仍然工作在nginx的1.8.1
丹尼尔

您关于使用引号处理空格的建议对我很有帮助!
击败

5

如果您尝试指定绝对路径,例如...

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|

这项功能适用于Nginx 1.9.10,谢谢!
NenadP '02


1

似乎别名对我的Windows系统根本不起作用。我尝试输入

alias "c:"

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


对于nginx 1.5.6,可以进行以下设置:alias ../../cde/folder;,假设您的nginx.exe位于d:/ abc / nginx,但是您尝试别名的文件夹位于d:/ cde / folder。一些消息来源提到nginx是使用path硬编码的/cygdrive/c/nginx/,在这种情况下alias /cygdrive/d/path/应该使用,但这对我不起作用。还值得一提的是,别名路径末尾的正斜杠不应忽略。
TonyTony

我正在尝试将nginx.conf从linux迁移到win10。Nginx可执行文件位于C:\ nginx中,而提供的文件位于D:/ bellaria_web / haus中。上下文“根D:/ bellaria_web / haus /;” 似乎不起作用。有人可以解释什么地方不对吗?
aag

0

对于Windows上的Nginx,您必须使用以下方法:

位置/ foo {

根目录C:// pathtoyourfile / folder1 / folder2;

其中foo是folder2内部的实际文件夹

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.