在 RedHat Enterprise 主机上使用 nginx 作为我的 Web 服务器。
尽管有示例和我读过的内容,但我还是开始认为我还没有完全理解 nginx.conf 中位置的用法。
我最初设置它只是为了服务我们的内部 wiki。
我正在尝试改变一些东西,以便它可以承载其他东西。
在执行以下操作时不会显示 wiki: http://myserver.corp.com
我希望在执行以下操作时显示 wiki:http://myserver.corp.com/wiki/
/wiki 不是一个文件夹,也不存在于服务器上,它只是一种将 /wiki 请求重定向到服务器上另一个位置的方式。
我在我的 nginx.conf 中做了如下更改:
server {
server_name myserver.corp.com;
root /var/www/public_html/;
index index.html index.php;
autoindex off;
location /wiki {
root /usr/share/mediawiki123/;
}
location ~ \.php$ {
include fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
}
}
但是,通过添加该位置信息并尝试访问它,我在日志中看到以下内容:
2017/09/07 17:16:43 [错误] 614#0:*1 未找到“/usr/share/mediawiki123/wiki/index.html”(2:没有此文件或目录),客户端:10.13.168.153,服务器:myserver.corp.com,请求:“GET /wiki/HTTP/1.1”,主机:“myserver.corp.com”
看起来它正在将 /wiki 附加到文件夹结构中?
而不是尝试访问:“/usr/share/mediawiki123/wiki/index.html”
它应该只是去:“/usr/share/mediawiki123/index.html”
答案1
你想要alias
,而不是root
,在你的location
街区里。有这两个指令在构建资源路径方面有一个微妙但重要的区别。