ale*_*nst 7 nginx errordocument
我正在尝试为我的整个 nginx 服务器设置一个默认的 error_page(就像所有虚拟主机一样)。
我正在尝试使用以下代码:
http {
...
...
error_page 404 /var/www/default/404.html;
...
...
}
Run Code Online (Sandbox Code Playgroud)
另外,如果我没有明确编写另一个虚拟主机,我希望能够创建一个虚拟主机并使其使用默认的 404.html。
就像是:
server {
...
server_name mydomain.com
root /var/www/mydomain.com/;
...
}
Run Code Online (Sandbox Code Playgroud)
无论如何,我收到以下错误:
[error] 16842#0: *1 open() "/var/www/mydomain.com/var/www/default/404.html" failed (2: No such file or directory)
Run Code Online (Sandbox Code Playgroud)
虽然我确实理解错误,并且我确实理解它为什么会发生,但我不明白为什么我不能告诉 NGINX 使用默认的 error_page 作为绝对路径而不是将它附加到我的 vhost 的根目录。
知道如何制作吗?
问候
正如您已经发现的那样,该error_page指令指定了一个与 document 相关的文档root。
解决此问题的一种方法是创建一个单独的文件,其中包含您的错误页面规范,其中包含适当的location块,然后include从每个server将使用 "global" error_page。
例如,一个文件/etc/nginx/global404:
location = /404.html {
root /var/www/default;
}
error_page 404 /404.html;
Run Code Online (Sandbox Code Playgroud)
现在在每个server块中,您将:
include global404;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17260 次 |
| 最近记录: |