質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Gunicorn

Gunicorn (Green Unicorn)は、Rubyのunicornをベースに開発されたUNIX向けのPython製HTTPサーバです。他のライブラリとの依存関係がないため、容易にインストールして使用できます。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Google App Engine

Google App Engineは、Googleの管理するデータセンター上でウェブアプリケーションの開発が可能なクラウドコンピュータ技術です。Java、Python、Go用にSDKが用意されています。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

0回答

1589閲覧

GCPのGoogle App EngineでDjangoアプリデプロイすると502 Bad Gateway nginx/1.14.0 (Ubuntu)と表示される件

退会済みユーザー

退会済みユーザー

総合スコア0

Gunicorn

Gunicorn (Green Unicorn)は、Rubyのunicornをベースに開発されたUNIX向けのPython製HTTPサーバです。他のライブラリとの依存関係がないため、容易にインストールして使用できます。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Google App Engine

Google App Engineは、Googleの管理するデータセンター上でウェブアプリケーションの開発が可能なクラウドコンピュータ技術です。Java、Python、Go用にSDKが用意されています。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

0グッド

1クリップ

投稿2019/09/06 20:30

編集2019/09/07 13:48

#●Google Cloud PlatformのGoogle App Engineに自作のDjangoアプリ(プロジェクト名:djangoblogs)をデプロイする方法についてです。

##①ここに質問の内容を詳しく書いてください。

Google Cloud Platform初心者の者です。自作のDjangoアプリをデプロイしようとしているのですが、デプロイが出来ても与えれたリンク先は502 Bad Gateway nginx/1.14.0 (Ubuntu)が表示されるだけで改善の兆しが見えません。Did not detect your browser. Go to this link to view your appと「gcloud app browse --project djangoblogsコマンドを実行」するたびに表示されます。ちなみにローカル環境(http://127.0.0.1:8000/)ではアプリのランディングページが問題なく表示されます。

##②発生している問題・エラーメッセージ
ちなみにGoogle Cloud PlatformのstackdriverのError Reportingでは

ModuleNotFoundError: No module named 'djangoblogs'と主に表示されており、

at import_app (/env/lib/python3.7/site-packages/gunicorn/util.py:350)
at load_wsgiapp (/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py:41)
at load (/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py:52)
at wsgi (/env/lib/python3.7/site-packages/gunicorn/app/base.py:67)
at load_wsgi (/env/lib/python3.7/site-packages/gunicorn/workers/base.py:138)
at init_process (/env/lib/python3.7/site-packages/gunicorn/workers/base.py:129)
at spawn_worker (/env/lib/python3.7/site-packages/gunicorn/arbiter.py:583)

と詳細表示されます。よく見るにpip install したgunicorn==19.9.0(requirements.txtにfreeze済み)が問題を引き起こしているように考えられるのですがよく分かりません。

##③該当のソースコード

ちなみに

1.app.yamlファイル

runtime: python37
entrypoint: gunicorn --timeout 3600 -b :$PORT djangoblogs.wsgi:application

handlers:

  • url: /static
    static_dir: static

  • url: /.*
    script: auto

2.wsgi.pyファイル

import os
from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")

application = get_wsgi_application()

3.settings.pyファイル

import os

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(file)))

SECRET_KEY = '非表示'

DEBUG = True

ALLOWED_HOSTS = ['*']

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
'accounts.apps.AccountsConfig',
]

MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ROOT_URLCONF = 'mysite.urls'

TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]

SETTINGS_PATH = os.path.normpath(os.path.dirname(file))
TEMPLATE_DIRS = (os.path.join(SETTINGS_PATH, 'templates'),)

WSGI_APPLICATION = 'mysite.wsgi.application'

if os.getenv('GAE_APPLICATION', None):
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'djangoblogs',
'USER': 'djangoblogs',
'PASSWORD': 'djangoblogs',
'HOST': '/cloudsql/djangoblogs:asia-northeast1:djangoblogs'
'ATOMIC_REQUESTS': True,
}
}
STATIC_URL ='/static/'
STATIC_ROOT = 'static'
else:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'djangoblogs',
'USER': 'djangoblogsuser',
'PASSWORD': 'djangoblogs',
'HOST':'127.0.0.1',
'POST': '3306',
'ATOMIC_REQUESTS': True,
}
}

AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
'OPTIONS': {
'min_length': 4,
}
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]

LANGUAGE_CODE = 'ja'

TIME_ZONE = 'Asia/Tokyo'

USE_I18N = True

USE_L10N = True

USE_TZ = True

STATIC_URL = '/static/'
STATIC_DIRS = os.path.join(BASE_DIR, '/static/')
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')

LOGIN_REDIRECT_URL = '/'
LOGOUT_REDIRECT_URL = '/'

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

はこのようになっています。(主に手を加えたファイル群)

##④試したこと

基本的にcloud_SQL_proxyの設定やAPIの有効化、認証、クレジットカード登録等についてなどのよくあるDjango, Gunicorn, nginx関連をあつかった502 Bad Gateway nginx/1.14.0 (Ubuntu)関連の記事をgoogleで調べて試してみましたが、初心者のためうまくいきませんでした。pythonの環境を3.6.8から3.7.3にするためにいろいろいじくってしまったのも原因かもしれません。ご教示いただければ幸いです。よろしくお願いします。

補足情報(FW/ツールのバージョンなど)

Google App Engine
Cloud_SQL_Proxy

Django==2.2.5
djangoblogs==0.2.0
gunicorn==19.9.0
mysqlclient==1.4.4
Pillow==6.1.0
pytz==2019.2
sqlparse==0.3.0

下記の「クリップ」にフォルダとファイル構成の資料があります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問