2013-12-17 32 views
20

我讀nginx的初學者教程,對Serving Static Content他們我們什麼時候需要在nginx配置文件中使用http塊?

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來提供靜態文件?

回答

28

你做得很好。我猜你正在編輯/ etc/nginx/sites-enabled/default(或/ etc/nginx/sites-available/default中的鏈接文件)。

這是標準的nginx設置。 /nginx/nginx.conf其中包含http {}語句,這又包含一個「包含/ etc/nginx/sites-enabled/*」的行,以便在其中包含帶有server {}子句的文件。

請注意,如果您使用的是創建一個備份文件的編輯器,你必須修改包括語句,用於排除備份文件,否則你會得到一些「有趣」的錯誤!我行

include /etc/nginx/sites-enabled/*[a-zA-Z] 

將不會拾取以代字號結尾的備份文件。因人而異。

相關問題