如果将NGINX更改为NGINX,发生了404错误怎么办?
开始
「404错误。」我只进行了简单的设置,为什么发生这种情况?
无法访问文档根目录,这太基础了!
非常抱歉,花了大约三个小时才最终解决了。
环境
-
- Windows 10
- Nginx 1.16.1
起初是由于使用Windows导致出现的问题。
在Windows中,反斜杠”\\”被用作目录分隔符号,也可以用日元符号”¥”代替。
根据调查,斜杠”/”在很多情况下也可以使用,但通常我们看到的是日元符号。
在Linux系统中,默认使用斜杠作为分隔符号。
这个分隔符号的差异是其中一个原因。
写出类似Windows的路径
据说nginx最初是为Linux设计的软件,所以可以使用斜杠进行各种配置。
我不知道那樣的事情,所以我在Windows上使用了反斜杠來進行設定。
异常的设置
这是一个异常的设定。
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
listen 443 ssl;
server_name 192.168.30.123 test.domain.local;
ssl_certificate C:\ssl\server.crt; # ここに円マークを使用している
ssl_certificate_key C:\ssl\server.key; # ここに円マークを使用している
location / {
proxy_pass http://127.0.0.1:8080/;
}
location /test {
alias e:\nginx; # ここに円マークを使用している
index index.html;
}
}
}
错误日志
:/logs/error.log
2020/03/09 13:58:56 [crit] 900#5188: *11 CreateFile() “e:”
错误日志路径为:/logs/error.log
2020年3月9日13点58分56秒 [严重] 900#5188: *11 CreateFile() “e:”
“ginx/index.html” 失敗 (123: 文件名、目录名或卷标语法不正确),客户端:192.168.0.18,服务器:192.168.30.123,请求:”GET /index.html HTTP/1.1″,主机:”test.domain.local”
根据这段描述,您是否能够立即理解,在 “e:和ginx/index.html” 失败之间存在换行?
巧合重叠了
-
- Windows形式のパスで書いたこと
-
- フォルダ名がNginxであったこと
-
- ssl_certificateの設定はWindows形式でも問題なかったこと
- エスケープシーケンスなんて忘れていたこと
总结
如果将分隔符更改为斜杠,似乎可以不需要逃逸序列。
正常设置
因此,我做出了以下的设定。
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
listen 443 ssl;
server_name 192.168.30.123 test.domain.local;
ssl_certificate C:/ssl/server.crt;
ssl_certificate_key C:/ssl/server.key;
location / {
proxy_pass http://127.0.0.1:8080/;
}
location /test {
alias e:/nginx;
index index.html;
}
}
}
2023年7月补充内容
在Windows上使用Nginx从根本上讲是不推荐的。如果确实有必要,强烈建议使用WSL2。
胜利者!