内容
Windows10にVirtualBoxでUbuntuをインストールし、
そのUbuntu上にNginxとPython(Django)のコンテナを作成しました。
Nginxコンテナのポートは80を使用し、
Pythonコンテナのポートを8001を使用し、
http://localhost:80 にアクセスすると、Python(Django)のコンテナに接続し、
Djangoの最初の画面(ロケットの画面)を出そうとしたいのですが、うまく接続されません。
※http://localhost:80 にアクセスするとNginxの画面が表示され、
http://localhost:8001にアクセスすると、**接続がリセットされました**、という
Firefoxのエラー画面が表示されている。
詳細
・今回はdocker-composeを使用せずに環境構築しており、docker-composeを使用したやり方では1度こちらの(記事)を参考にDjangoの最初の画面まで確認はしたことがありますが、
今回は特に、uwsgiあたりの設定方法がわからず、そのあたりで接続がうまくいっていないと感じており、docker-composeを使用しない場合のuwsgiの設定方法を教えていただきたく投稿いたしました。
使用しているDockerイメージ
※Nginx:alpine
※Python:Python3.7-slim-buster
少し気になるエラー
今回のuwsgiと関係があるかはわかりませんが、Pythonコンテナ上でsystemctlを起動させようとすると以下のエラーが出ていることが少し気になっています。
$ systemctl System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down
追記
uwsgiの設定ファイル、手順を追記しました。情報が少なく申し訳ございませんでした。
①Nginx側の設定
・nginx/conf.d/defalt.conf
upstream django { ip_hash; server python:8001; } server { listen 8000; server_name 127.0.0.1; charset utf-8; location /static { alias /static; } location / { uwsgi_pass django; include /etc/nginx/uwsgi_params; } } server_tokens off;
②Python側の設定
・uwsgi.service (/etc/systemd/system/uwsgi.service)
[Unit] Description = uWSGI After = syslog.target [Service] ExecStartPre =/bin/sh -c "/bin/systemctl set-environment DO_DAEMON_PROCESS=1" ExecStart = /usr/local/bin/uwsgi --ini /opt/app/myapp/uwsgi.ini --logto /var/log/wsgi/myapp.log Restart=always KillSignal=SIGQUIT Type=notify StandardError=syslog NotifyAccess=all [Install] WantedBy=multi-user.target
・uwsgi.ini(/opt/app/myapp/uwsgi.ini)
[uwsgi] socket = 127.0.0.1:8001 chdir = /opt/app/myapp module = myapp.wsgi process = 4 threads = 1
uwsgi_params(/opt/app/myapp/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;
以上
回答2件
あなたの回答
tips
プレビュー