配置 nginx 位置的问题

配置 nginx 位置的问题

在 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街区里。有这两个指令在构建资源路径方面有一个微妙但重要的区别

相关内容