web-dev-qa-db-ja.com

nginx不明なディレクティブ「上流」

Nginxをプロキシサーバーとして使用して、要求をgunicornサーバーに転送しています。 Sudo nginx -t -c /etc/nginx/sites-enabled/mysiteを実行すると、次のエラーが表示されます。

[emerg]: unknown directive "upstream" in /etc/nginx/sites-enabled/mysite:1
configuration file /etc/nginx/sites-enabled/mysite test failed

それを修正する方法はありますか?これは私のnginx設定です:

upstream gunicorn_mysite {
    server 127.0.0.1:8000 fail_timeout=0;
}

server {
    listen 80;
    server_name example.com;

    access_log /usr/local/Django/logs/nginx/mysite_access.log;
    error_log /usr/local/Django/logs/nginx/mysite_error.log;

    location / {
        proxy_pass http://gunicorn_mysite;
    }
}

Ubuntu 10.04を実行していますが、nginxのバージョンは0.7.65で、aptからインストールしました。

これは、nginx -Vを実行したときの出力です

nginx version: nginx/0.7.65
TLS SNI support enabled
configure arguments: --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/body --http-proxy-temp-path=/var/lib/nginx/proxy --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --with-debug --with-http_stub_status_module --with-http_flv_module --with-http_ssl_module --with-http_dav_module --with-http_gzip_static_module --with-http_realip_module --with-mail --with-mail_ssl_module --with-ipv6 --add-module=/build/buildd/nginx-0.7.65/modules/nginx-upstream-fair
21
Neil

私のnginx設定をオンにしました。問題は私のgunicornサーバーが適切に動作していないことでした。

4
Neil

Nginxにそのファイルを直接ロードするように指示すると、グローバルコンテキストで開始されます。アップストリームディレクティブは、httpコンテキストでのみ有効です。 nginx.confによってそのファイルが正常に含まれている場合、そのファイルはすでにhttpコンテキスト内に含まれています。

events { }
http {
  include /etc/nginx/sites-enabled/*;
}

-c /etc/nginx/nginx.confを使用するか、上記のブロックとnginx -cのような小さなラッパーを作成する必要があります。

23
kolbyjack

EC2 Ubuntuでnginxバージョン:nginx/1.4.1を使用しています。私はこのエラーを受け取りました:

nginx:[emerg] "upstream"ディレクティブは/etc/nginx/nginx.confでは許可されていません

インスタンスを実行するには、上流セクションとサーバーセクションをhttp {}セクションにラップする必要がありました。その後、行方不明のセクションについて文句を言いました。だから私はそれを次のように追加しました:

イベント{worker_connections 1024; }

これらの修正後は問題なく動作しました。これが私の最初の取り組みなので、自分のやり方を推測していました。

12
eezis