web-dev-qa-db-ja.com

django- nginx:[emerg] open() "/ etc / nginx / proxy_params"が失敗しました(2:そのようなファイルまたはディレクトリはありません)/ etc / nginx / sites-enabled / myproject:11

このチュートリアル を使用して、NginxとGunicornでDjangoプロジェクトをデプロイしようとします。私はすべてのタスクを行いましたが、以下のコードで/etc/nginx/sites-available/myprojectファイルを作成すると、

server {
listen 80;
server_name server_domain_or_IP;

location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
    root /home/sammy/myproject;
}

location / {
    include proxy_params;
    proxy_pass http://unix:/home/sammy/myproject/myproject.sock;
 }
}

検索エラーに対してSudo nginx -tを実行すると、次のエラーが発生します。

nginx: [emerg] open() "/etc/nginx/proxy_params" failed (2: No such file or directory) in /etc/nginx/sites-enabled/myproject:11
nginx: configuration file /etc/nginx/nginx.conf test failed

どうしたの??そしてそれを解決する方法? Tanx

16
msln

proxy_paramsのパスが99%間違っています(私の経験から)。proxy_paramsファイルのデフォルトの場所は/etc/nginx/proxy_paramsですが、これはあなたも同じ。

proxy_paramsファイルには以下が含まれます。

proxy_set_header Host $http_Host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

プロキシしているアプリケーションに情報を転送するために使用される、私はproxy_paramsファイルを持たない古いCentosサーバーで作業しました。自分で作成する代わりに、これらのパラメーターを直接含めただけなので、ロケーションブロックが見えましたこのような

location / {
    proxy_set_header Host $http_Host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_pass http://unix:/home/sammy/myproject/myproject.sock;
 }

したがって、それはあなた次第です。ファイルが別の場所に存在する場合は、適切な場所に含めるだけです。

include /path/to/proxy_params

それ以外の場合は、パラメーターをロケーションブロックに直接含めることができます(上記のように)

または、自分で作成して/ etc/nginxに配置します(現在のコードを使いたい場合)

28
danidee