2016-09-18 15 views
1

/home/ubuntu/testディレクトリに "yo"というdjangoプロジェクトを作成しました。djangoでnginxを設定する

nginxの/サイト利用可能/ヨーヨー

server { 
     listen 80; 
     server_name 52.89.220.11; 

     location = /favicon.ico { access_log off; log_not_found off; } 
     location /static/ { 
      root /home/ubuntu/test/yo/static; 
     } 

     location/{ 
      include uwsgi_params; 
      uwsgi_pass unix:/home/ubuntu/test/yo/yo.sock; 
     } 
    } 

nginxの/サイト対応/ yo_nginx.conf:

# mysite_nginx.conf 

# the upstream component nginx needs to connect to 
upstream django { 
    # server unix:///home/Ubuntu/test/yo/yo.sock; # for a file socket 
    server 127.0.0.1:8001; # for a web port socket (we'll use this first) 
} 

# configuration of the server 
server { 
    # the port your site will be served on 
    listen  80; 
    # the domain name it will serve for 
    server_name 52.89.220.11; # substitute your machine's IP address or FQDN 
    charset  utf-8; 

    # max upload size 
    client_max_body_size 75M; # adjust to taste 

    # Django media 
# location /media { 
    #  alias /path/to/your/mysite/media; # your Django project's media files - amend as required 
    # } 

    #location /static { 
    # alias /path/to/your/mysite/static; # your Django project's static files - amend as required 
    } 

# Finally, send all non-media requests to the Django server. 
location/{ 
    uwsgi_pass django; 
    include  /home/ubuntu/test/yo/uwsgi_params; # the uwsgi_params file you installed 
} 
} 

/ホーム/ Ubuntuの/

これらは私のnginxのファイルですテスト/ yo/uwsgi_params:

uwsgi_param QUERY_STRING  $query_string; 
uwsgi_param REQUEST_METHOD  $request_method; 
uwsgi_param CONTENT_TYPE  $content_type; 
uwsgi_param CONTENT_LENGTH  $content_length; 

uwsgi_param REQUEST_URI  $request_uri; 
uwsgi_param PATH_INFO   $document_uri; 
uwsgi_param DOCUMENT_ROOT  $document_root; 
uwsgi_param SERVER_PROTOCOL $server_protocol; 
uwsgi_param REQUEST_SCHEME  $scheme; 
uwsgi_param HTTPS    $https if_not_empty; 

uwsgi_param REMOTE_ADDR  $remote_addr; 
uwsgi_param REMOTE_PORT  $remote_port; 
uwsgi_param SERVER_PORT  $server_port; 
uwsgi_param SERVER_NAME  $server_name; 

自分のファイルとそのURLがあります。ポート80でdomain_nameに行くと、djangoの成功ページの代わりに502の悪いゲートウェイが得られます。助けてください。 .confで終わるファイルのみを、デフォルトのnginxの設定で読み込まれnginx/sites-enabled/に位置 -

+0

なぜ2つの異なるnginx設定ファイルがありますか?そしてなぜあなたはサーバブロックにないロケーションブロックを持っていますか? – polku

+0

私はいくつかのリンクをたどって、彼らが言ったことをしました。多分あなたが助けることができます。 – user2507

+0

これは、より良いリンクを使用する必要があります。sites_enabledのファイルはsites_availableのファイルと同じで、locationブロックはサーバーブロックに属しています。それを修正してください。問題がある場合は、nginxとuwsgiのエラーメッセージを投稿してください。 – polku

答えて

1
  • あなたはnginxので読まれていない、あなたのnginx/sites-enabled/yo_nginx.conf
  • nginx/sites-available/yoで比類のない括弧を持っています。
  • コマンドラインuwsgi --socket mysite.sock --module mysite.wsgi --chmod-socket=664がUNIXソケットでリッスンするようにuwsgiに指示するので、upstream djangoブロックをそれに応じて変更する必要があります。

これは、502エラーを取り除くはずです。

upstream django { 
    server unix:///home/ubuntu/test/yo/mysite.sock; # for a file socket, check if the path is correct 
    # server 127.0.0.1:8001; # for a web port socket 
} 

# configuration of the server 
server { 
    # the port your site will be served on 
    listen  80; 
    # the domain name it will serve for 
    server_name 52.89.220.11; # substitute your machine's IP address or FQDN 
    charset  utf-8; 

    # max upload size 
    client_max_body_size 75M; # adjust to taste 

    # Django media 
    # location /media { 
    #  alias /path/to/your/mysite/media; # your Django project's media files - amend as required 
    # } 

    # location /static { 
    #  alias /path/to/your/mysite/static; # your Django project's static files - amend as required 
    # } 

# Finally, send all non-media requests to the Django server. 
    location/{ 
     uwsgi_pass django; 
     include  /home/ubuntu/test/yo/uwsgi_params; # the uwsgi_params file you installed 
    } 
} 
+0

私はあなたに数分でお知らせします。 – user2507

+0

これはまだ私に502エラーを与えています。 – user2507

+0

これは、エラーログの内容です。 2016/09/18 11:44:30 [エラー] 10853#0:* 65 connect()が失敗しました(111:接続が拒否されました)。 255.51、サーバー:52.89.220.11、リクエスト: "GET /favicon.ico HTTP/1.1"、アップストリーム: "uwsgi://127.0.0.1:8001"、ホスト: "52.89.220.11"、参照先: "http:// 52.89.220.11/ " – user2507

1

まず、必要なアプリケーションをインストールします。 須藤はapt-getをインストールnginxのuwsgi uwsgi - プラグインのpythonのpython-virtualenvのに使用されるパッケージの バージョン:

Nginx 
Uwsgi 
Virtualenv 
Django 
Virtualenv. 

私は〜/プロジェクトでの私のプロジェクトを保存します。今私は私のプロジェクトのためのpython仮想環境を作成しています。私はDjangoをインストールしています。

cd ~/projects/ 
virtualenv example.com 
cd example.com 
source bin/activate 
pip install django 
django-admin.py startproject project 

Nginx構成。 IMHO、デフォルトでは、nginxは基本タスク用に設定されています。この設定ではこの設定を変更しません。設定ファイルは

/etc/nginx/sites-available. Go to this directory and create a new file. 
cd /etc/nginx/sites-available 

vim example.comに保存されています。

server { 
    listen 80; 
    server_name eample.com,www.example.com; 
    access_log /var/log/nginx/eample.com_access.log; 
    error_log /var/log/nginx/example.com_error.log; 

    location/{ 
     uwsgi_pass unix:///tmp/example.com.sock; 
     include  uwsgi_params; 
    } 

    location /media/ { 
     alias /home/eshlox/projects/example.com/project/project/media/; 
    } 

    location /static/ { 
     alias /home/eshlox/projects/example.com/project/project/static/; 
    } 
} 

これを有効にするにはシンボリックリンクを作成する必要があります。

cd /etc/nginx/sites-enabled 

ln -s ../sites-available/example.com . 

Uwsgi。 Nginxと同様に、設定ファイルは/ etc/uwsgi/apps-availableに保存されています。このディレクトリに移動し、新しいファイルを作成します。

cd /etc/uwsgi/apps-available 
vim example.com.ini 

編集 [uwsgi]

vhost = true 
plugins = python 
socket = /tmp/example.com.sock 
master = true 
enable-threads = true 
processes = 2 
wsgi-file = /home/eshlox/projects/example.com/project/project/wsgi.py 
virtualenv = /home/eshlox/projects/example.com 
chdir = /home/eshlox/projects/example.com/project 
touch-reload = /home/eshlox/projects/example.com/project/reload 

これを有効にしexample.com.ini。

cd /etc/uwsgi/apps-enabled/ 
ln -s ../apps-available/example.com.ini . 
That's all. Now, run this services. 
sudo service nginx start 
sudo service uwsgi start 
+1

ありがとう、問題は解決されました。 – user2507

関連する問題