我正在阅读nginx初学者的教程,在Serving Static Content部分
http {
server {
}
}
但是当我添加一个http块时,我收到了错误
[emerg]这里不允许“http”指令...
当我删除http块并将conf文件更改为此文件时,它可以正常工作:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/example.com/html;
index index.html index.htm;
# make site accessible from http://localhost/
server_name localhost
location / {
try_files $uri $uri/ /index.html;
}
我怀疑我遗漏了一些简单的东西,但为什么他们使用http来提供静态文件?
答案 0 :(得分:29)
你做得很好。我猜您正在编辑/ etc / nginx / sites-enabled / default(或/ etc / nginx / sites-available / default中的链接文件。
这是标准的nginx设置。它配置了/etc/nginx/nginx.conf,其中包含http {}语句。这反过来包含一个“include / etc / nginx / sites-enabled / *”行,包含上面的文件,其中包含server {}子句。
请注意,如果您使用的是创建备份文件的编辑器,则必须修改include语句以排除备份文件,否则您将收到一些“有趣”的错误!我的行是
include /etc/nginx/sites-enabled/*[a-zA-Z]
不会获取以代字号结尾的备份文件。因人而异。