2017-04-26 5 views
4

私はNGINXを使い始めました。だから私はnginxと監督(this例で)とaiohttpミニアプリを実行しようとしている。しかし、私はnginxのは、右の設定と、次のエラーを取得することはできません。ここでnginx:[emerg]ここでは/ etc/nginx/sites-enabled/default:1に「http」ディレクティブを使用できません。

nginx: [emerg] "http" directive is not allowed here in /etc/nginx/sites-enabled/default:1 

がフルは、default.confファイルです:

http { 
    upstream aiohttp { 
    # Unix domain servers 
    server unix:/tmp/example_1.sock fail_timeout=0; 
    server unix:/tmp/example_2.sock fail_timeout=0; 
    server unix:/tmp/example_3.sock fail_timeout=0; 
    server unix:/tmp/example_4.sock fail_timeout=0; 
    } 

    server { 
    listen 80; 
    client_max_body_size 4G; 

    server example.com; 

    location/{ 
     proxy_set_header Host $http_host; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_redirect off; 
     proxy_buffering off; 
     proxy_pass http://aiohttp; 
    } 
    } 

} 

それは正しく見えます。 serverディレクティブはhttpにあるはずです。 httpは親ディレクティブです。私は間違っているの?

答えて

11

私は、HTTPディレクティブのみが起こるはずとして、あなたはその後、include sites-enabled/*;

にnginxのを告げるあなたの/etc/nginx/nginx.confファイル内httpだから、あなたが

http 
    http 
     server 

を持っていると仮定しています一度サイト許可設定ファイルからhttpディレクティブを削除してください

+0

あなたが正しいです、 '/ etc/nginx/nginx.conf'にはこの行があります。私は 'http'ディレクティブを削除しましたが、今は" serverディレクティブはここで許可されていません "というエラーが出ます。 – Paul

+0

あなたの完全な設定がない私は本当にわかりません。あなたがそれを共有したいなら、私はもっと助けることができます。 –

+0

申し訳ありませんが、Nginxがどれくらい多くの設定ファイルを持っているかは分かりません。トピックは 'sites-available/default.conf'の全内容です。どのファイルを表示する必要がありますか? '/ etc/nginx/nginx.con'やそれ以外のものだけが必要ですか? – Paul

0

実際には、問題は2番目のserverキーワードにありました。私はaiohttp docsの例を使って、server_name example.comの代わりに "server example.com"と間違えているようです。

0

あなたの nginx.confとちょうどserver{}セクション/etc/nginx/sites-available/default休暇中にhttp{}セクション内にある必要があり一部を挿入することができます。

関連する問題