nginxでWindowsファイルパスを指定する方法


22

私は公式のWindowsバージョンのnginxを使用しています。この構成に相当するウィンドウを指定したい

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

エイリアスディレクティブでWindowsファイルパスを指定するにはどうすればよいですか?これも可能ですか?

回答:


17

これらの答えは古くなければなりません。スラッシュ付きのnginx 1.3.8絶対パスを使用すると機能します。バックスラッシュは機能するようですが、二重にする必要があります。そうでない場合は、末尾などの一部\"が文字どおりに取得されます。

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

引用符は必要ないかもしれませんが、スペースが埋め込まれている場合には良い考えのようです。

私が気づいたもう1つのことは、末尾のスラッシュで終わるかどうかで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


1

私のWindowsシステムではエイリアスがまったく機能しないようです。入力しようとしました

alias "c:"

しかし、これでも機能しません。そして、構成ファイルがnginxによってリロードされた後、場所を出力する方法を見つけることができません。したがって、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/は使用する必要がありますが、これは私には機能しません。また、エイリアスパスの末尾のスラッシュは無視しないでください。
トニートニー

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内の実際のフォルダーです

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.