#環境
現在デプロイを行なっているところです。
Python3.7
Django2.1
centOS7
PostgreSQL
gunicorn
nginx
#状況
ブラウザで nginxの起動ができ、guniconの起動( IPアドレスに接続)を行おうとしたところ、
<h1>Server Error (500)</h1>
がでます。
自分で調べた中だと、<h1>でエラーが出るのはDjangoからの応答であり、そこを直さないといけないこと(らしい)です。
ここを見ました
そこでどこをいじればいいのか分からないので質問しました。
加えて、このようにエラーが出た時は「どこを確認すればよい」というものはありますでしょうか?
先日から質問を多くしてしまっているので、自分でどうにかできればと思うのですが・・・。
-----追記-------
settings/prod.py
from .common import * # SECURITY WARNING: don't run with debug turned on in production! DEBUG = False ALLOWED_HOSTS = ['*', ] INSTALLED_APPS += ( 'gunicorn', ) # Database # https://docs.djangoproject.com/en/2.1/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'myapp', 'USER': 'myapp', 'PASSWORD': 'myapp', 'HOST': 'localhost', 'POST': '', } }
nginx.conf
include /etc/nginx/conf.d/*.conf; upstream myapp-master { server unix:/var/run/myapp.sock fail_timeout=0; } server { listen 80 default_server; listen [::]:80 default_server; server_name 【ここにIPアドレス】; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location /static { alias /opt/django/myapp/myapp/static; } location / { try_files $uri @proxy_to_app; } location @proxy_to_app { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; fastcgi_param HTTP_PROXY ""; proxy_pass http://myapp-master; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
gunicorn.conf.py
bind = 'unix:/var/run/myapp.sock' workers = 2 worker_connections = 1000 max_requests = 1000 debug = False daemon = True pidfile = '/var/run/myapp.pid' user = 'nginx' group = 'nginx' errorlog = '/var/log/gunicorn/myapp-error.log' accesslog = '/var/log/gunicorn/myapp-access.log' loglevel = 'info' proc_name = 'myapp'
------追記2(5/14 12:00)--------
その後、自身で調査しながら、試行錯誤しています。
Django と nginx を独立させた動作確認がわからなかったので、一つずつ確認しながらもう一度設定を見てみました。
nginxとgunicornはactiveになっていて、
gunicorn -c gunicorn.conf.py myapp.wsgi
からIPアドレスへアクセスすると、同じく500。
ただ、IPアドレス/admin へアクセスするとDjangoのadminサイトへアクセスできます。
ログインを行い、想定通りにオブジェクトの追加も行えました。
そして、python manage.py runserver
こちらも同じくadminサイトへアクセスできます。
その他のページは500です。
------追記3(5/14 16:30)--------
アプリケーションサーバーの起動コマンドは
gunicorn -c gunicorn.conf.py myapp.wsgi
その時のDjangoのエラーログは
"GET / HTTP/1.1" 500 27
gunicornのエラーログファイルにはエラーなし
[INFO] Starting gunicorn 19.9.0
が羅列。
nginxについてもエラーログファイルを確認。
同じくエラーなし(正確には、記述されていたが日付が昨日で、追記2の作業をしたのが今日だったためなしと判断)