私はこのトピックに関して多くの方法を試しましたが、まだ解決していません私の問題だから、私はこのポストが役に立つと思っています。Nginx + uWsgi + Django 'アップストリームに接続中に許可が拒否されました'(ソケット)
私はnginxのwtih uWSGIにジャンゴを設定するには、このサイトからチュートリアルを次のようだ:http://www.oliverelliott.org/article/computing/tut_setup_nginx_django/
uwsgi.iniファイル
[uwsgi]
chdir=/home/ec2-user/project/awssite
module=awssite.wsgi
home=/home/ec2-user/project
master=true
processes=2
socket=/home/ec2-user/project/awssite/awssite.socket
chmod-socket=666
vacuum=true
など/ nginxの/サイト対応/ awssite_nginx.conf
upstream django {
server unix:///home/ec2-user/project/awssite/awssite.socket;
}
server {
listen 8080;
server_name localhost;
charset utf-8;
#max upload size
client_max_body_size 75M;
#Django media
location /media {
alias /home/ec2-user/project/awssite/awssite/media;
}
location /static {
alias /home/ec2-user/project/awssite/awssite/static;
}
location /favicon.ico {
log_not_found off;
}
location/{
uwsgi_pass django;
include /home/ec2-user/project/awssite/uwsgi_params;
}
}
これは/var/log/nginx/error.log
2016/02/15 01:21:22 [crit] 22159#0: *3 connect() to unix:///home/ec2-user/project/awssite/awssite.socket failed (13: Permission denied) while connecting to upstream, client: CLIENT_IP, server: localhost, request: "GET /menu/ HTTP/1.1", upstream: "uwsgi://unix:///home/ec2-user/project/awssite/awssite.socket:", host: "HOST_IP:8080"
注意:CLIENT_IP & HOST_IPはIPアドレスの値です。
これらは私が試してみましたとはを働いていないものです。
1. chmod 755
ホームディレクトリとuwsgi --socket awssite.socket --module awssite.wsgi --chmod-socket=666
2.自分のユーザーグループにユーザーnginxのの追加とuwsgi --socket awssite.socket --module awssite.wsgi --chmod-socket=664
3.変更を実行しているを実行していますこれらの新しい行を追加してiniファイルを作成します。
chown-socket=ec2-user:nginx
uid=nginx
gid=nginx
uwsgi --ini uwsgi.ini
をINGのは、これが「chownコマンドのために拒否された許可」で返しますが、私はsudo
でコマンドを実行すると、私は(ユーザーec2-user
の外)別のディレクトリ内のすべてのファイルを入れて
4(uWSGIは、システム全体のインストールされている)sudo: uwsgi: command not found
を取得します私は両方の権限
6.改名nginxの
を試みた意味664/666
:私はroot
として実行しても、それが
5.パラメータ--uid nginx
--gid nginx
--chown-socket=nginx:nginx
注意してuwsgi --socket awssite.socket --module awssite.wsgi --chmod-socket=664/666
を実行している動作しない場合を除きそれは私がそれらにアクセスすることはできません。 conf.defaultとnginx.conf.rpm新しいファイル(そうnginxが読める唯一のconfファイルはnginx.conf
です)
誰かがこの問題を解決する方法についていくつかの光を当ててください。私は試したことのあるメソッドを追加し続けますが、私がこのメソッドを開発している間はこの問題に取り組まなかったのです。ありがとう:)
@GwynBleidD答えのおかげで、私はついにそれを働かせました。 これはどのような作品です:
はuwsgi
upstream django {
server unix:///tmp/djangosocket/awssite.socket;
}
....
awssite_nginx.confの/ etc/nginxの/サイト対応
/tmp
で私のソケットファイルを保管しました。iniファイル
[uwsgi]
chdir=/home/ec2-user/project/awssite
module=awssite.wsgi
home=/home/ec2-user/project
master=true
processes=2
socket=/tmp/djangosocket/awssite.socket
chmod-socket=666
vacuum=true
は、私は私のec2-user
(ログインしているユーザー)グループnginx
に追加しました。私はあなたのnginxのサーバーがuWSGIソケットにアクセスすることができない場合は、次の手順を履行しようと
chown -R ec2-user:nginx djangosocket
chmod g+rwx djangosocket
chdirを 'chdir =/home/ec2-user/project'に変更できますか? – Selcuk
@セルク・ノープはうまくいかなかった。私の理解では、 'chdir'はプロジェクト自体ではなく、プロジェクトのアプリへの道です。 –
私は常にプロジェクトディレクトリにchdirしますが、私はhome引数を含めません。 – Selcuk