我们什么时候需要在nginx配置文件中使用http块?

时间:2013-12-17 16:30:41

标签: http nginx

我正在阅读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来提供静态文件?

1 个答案:

答案 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] 

不会获取以代字号结尾的备份文件。因人而异。