我想为主页注册特殊参数。
文档说:
位置 = / { [ 配置 A ] }
对于“/”提示,将选择配置 A
以下是我为自己写的:
$ cat /etc/nginx/sites-enabled/test.conf
server {
listen 80;
server_name example.ru;
location = / {
root /var/www/test;
expires 0;
}
}
$ sudo systemctl restart nginx
所有文件都在那里并且权限正确:
$ ls -alh /var/www/test
итого 12K
drwxr-xr-x 2 root root 4,0K авг 24 18:45 .
drwxr-xr-x 9 root www-data 4,0K авг 24 18:45 ..
-rw-r--r-- 1 root root 19 авг 24 18:45 index.html
$ cat /var/www/test/index.html
<h1>It works!</h1>
但是在浏览器中,我看到了一个标准的 nginx 页面。
缓存自然被清除,甚至尝试过隐身模式。
为什么?
我似乎明白了问题所在。您的 block 中
location
没有指令index
。该指令指定要为以 . 结尾的请求发送的文件/
。在您的屏幕截图中,我看到路径正是/
.Nginx 的工作逻辑如下:请求以
/
?结尾是 - 显示指令中指定的文件
index
,如果它不起作用,返回欢迎页面否 - 返回路径末尾指定的文件,如果不存在,则返回欢迎页面
如果您现在沿路径提出请求
/index.html
,那么一切都会为您服务。为了避免不得不写在最后,index.html
添加指令index
嘿,我扔了一个指向有关索引的文档的链接,并在那里找到了问题的原因:
而且由于它是默认编写的
index index.html;
,因此进来的请求location = /
转到/index.html
,我没有为此编写设置。所以你需要写它们:
我想这让你很难过
location = /
。我会这样配置: