Question

Nginx 502 - django - GCP

Posted June 20, 2020 1.4k views
PythonDjangoDeployment

Hi,
I am trying to deploy my Django website on google cloud using tutorial (https://cloud.google.com/python/django/appengine#cloud-console) My website is working smoothly on local host as well on Heroku (Free). But when i try to deploy my website on GCP, deployment finishes without any error. But access to website using the link provided by GCP gives mei ‘nginx 502 Bad Gateway’ error.

I assume, error is because its listening to ’http://0.0.0.0:8081’. Can anyone please help.

Below are my logs:

Traceback from GCP website:

2020-06-20 12:02:57.759 IST
Traceback (most recent call last): File "/env/lib/python3.7/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker worker.init_process() File "/env/lib/python3.7/site-packages/gunicorn/workers/gthread.py", line 92, in init_process super().init_process() File "/env/lib/python3.7/site-packages/gunicorn/workers/base.py", line 119, in init_process self.load_wsgi() File "/env/lib/python3.7/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi self.wsgi = self.app.wsgi() File "/env/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi self.callable = self.load() File "/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 49, in load return self.load_wsgiapp() File "/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp return util.import_app(self.app_uri) File "/env/lib/python3.7/site-packages/gunicorn/util.py", line 358, in import_app mod = importlib.import_module(module) File "/opt/python3.7/lib/python3.7/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1006, in _gcd_import File "<frozen importlib._bootstrap>", line 983, in _find_and_load File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked ModuleNotFoundError: No module named 'main'
Expand all | Collapse all{
 insertId: "5eedad99000b96b31054c1f8"  
 labels: {
  clone_id: "00c61b117ceed98b6a28aa8b70411a0a5acbb82696fd9c6894b1680eeaf75adfbafe66"   
 }
 logName: "projects/school-website-272007/logs/stderr"  
 receiveTimestamp: "2020-06-20T06:32:57.952414554Z"  
 resource: {
  labels: {
   module_id: "default"    
   project_id: "school-website-272007"    
   version_id: "20200620t115649"    
   zone: "asia-south1-2"    
  }
  type: "gae_app"   
 }
 textPayload: "Traceback (most recent call last):
  File "/env/lib/python3.7/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
    worker.init_process()
  File "/env/lib/python3.7/site-packages/gunicorn/workers/gthread.py", line 92, in init_process
    super().init_process()
  File "/env/lib/python3.7/site-packages/gunicorn/workers/base.py", line 119, in init_process
    self.load_wsgi()
  File "/env/lib/python3.7/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi
    self.wsgi = self.app.wsgi()
  File "/env/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
    self.callable = self.load()
  File "/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
    return self.load_wsgiapp()
  File "/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
    return util.import_app(self.app_uri)
  File "/env/lib/python3.7/site-packages/gunicorn/util.py", line 358, in import_app
    mod = importlib.import_module(module)
  File "/opt/python3.7/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'main'"  
 timestamp: "2020-06-20T06:32:57.759475Z"  
}

After GCP deploy and 'gcloud app logs tail -s default’ generates log as below.

2020-06-20 06:51:07 default[20200620t115649]  Traceback (most recent call last):    File "/env/lib/python3.7/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker      worker.init_process()    File "/env/lib/python3.7/site-p
ackages/gunicorn/workers/gthread.py", line 92, in init_process      super().init_process()    File "/env/lib/python3.7/site-packages/gunicorn/workers/base.py", line 119, in init_process      self.load_wsgi()    File "/env/lib/python
3.7/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi      self.wsgi = self.app.wsgi()    File "/env/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi      self.callable = self.load()    File "/env/li
b/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 49, in load      return self.load_wsgiapp()    File "/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp      return util.import_app(self.app_u
ri)    File "/env/lib/python3.7/site-packages/gunicorn/util.py", line 358, in import_app      mod = importlib.import_module(module)    File "/opt/python3.7/lib/python3.7/importlib/__init__.py", line 127, in import_module      return
 _bootstrap._gcd_import(name[level:], package, level)    File "<frozen importlib._bootstrap>", line 1006, in _gcd_import    File "<frozen importlib._bootstrap>", line 983, in _find_and_load    File "<frozen importlib._bootstrap>", l
ine 965, in _find_and_load_unlocked  ModuleNotFoundError: No module named 'main'
2020-06-20 06:51:07 default[20200620t115649]  [2020-06-20 06:51:07 +0000] [21] [INFO] Worker exiting (pid: 21)
2020-06-20 06:51:07 default[20200620t115649]  [2020-06-20 06:51:07 +0000] [7] [INFO] Shutting down: Master
2020-06-20 06:51:07 default[20200620t115649]  [2020-06-20 06:51:07 +0000] [7] [INFO] Reason: Worker failed to boot.
2020-06-20 06:51:08 default[20200620t115649]  "GET /favicon.ico HTTP/1.1" 502
2020-06-20 06:51:09 default[20200620t115649]  [2020-06-20 06:51:09 +0000] [7] [INFO] Starting gunicorn 20.0.4
2020-06-20 06:51:09 default[20200620t115649]  [2020-06-20 06:51:09 +0000] [7] [INFO] Listening at: http://0.0.0.0:8081 (7)
2020-06-20 06:51:09 default[20200620t115649]  [2020-06-20 06:51:09 +0000] [7] [INFO] Using worker: threads
2020-06-20 06:51:09 default[20200620t115649]  [2020-06-20 06:51:09 +0000] [18] [INFO] Booting worker with pid: 18
2020-06-20 06:51:09 default[20200620t115649]  [2020-06-20 06:51:09 +0000] [18] [ERROR] Exception in worker process
2020-06-20 06:51:09 default[20200620t115649]  Traceback (most recent call last):    File "/env/lib/python3.7/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker      worker.init_process()    File "/env/lib/python3.7/site-p
ackages/gunicorn/workers/gthread.py", line 92, in init_process      super().init_process()    File "/env/lib/python3.7/site-packages/gunicorn/workers/base.py", line 119, in init_process      self.load_wsgi()    File "/env/lib/python
3.7/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi      self.wsgi = self.app.wsgi()    File "/env/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi      self.callable = self.load()    File "/env/li
b/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 49, in load      return self.load_wsgiapp()    File "/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp      return util.import_app(self.app_u
ri)    File "/env/lib/python3.7/site-packages/gunicorn/util.py", line 358, in import_app      mod = importlib.import_module(module)    File "/opt/python3.7/lib/python3.7/importlib/__init__.py", line 127, in import_module      return
 _bootstrap._gcd_import(name[level:], package, level)    File "<frozen importlib._bootstrap>", line 1006, in _gcd_import    File "<frozen importlib._bootstrap>", line 983, in _find_and_load    File "<frozen importlib._bootstrap>", l
ine 965, in _find_and_load_unlocked  ModuleNotFoundError: No module named 'main'
2020-06-20 06:51:09 default[20200620t115649]  [2020-06-20 06:51:09 +0000] [18] [INFO] Worker exiting (pid: 18)
2020-06-20 06:51:09 default[20200620t115649]  [2020-06-20 06:51:09 +0000] [22] [INFO] Booting worker with pid: 22
2020-06-20 06:51:09 default[20200620t115649]  [2020-06-20 06:51:09 +0000] [22] [ERROR] Exception in worker process
2020-06-20 06:51:09 default[20200620t115649]  Traceback (most recent call last):    File "/env/lib/python3.7/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker      worker.init_process()    File "/env/lib/python3.7/site-p
ackages/gunicorn/workers/gthread.py", line 92, in init_process      super().init_process()    File "/env/lib/python3.7/site-packages/gunicorn/workers/base.py", line 119, in init_process      self.load_wsgi()    File "/env/lib/python
3.7/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi      self.wsgi = self.app.wsgi()    File "/env/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi      self.callable = self.load()    File "/env/li
b/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 49, in load      return self.load_wsgiapp()    File "/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp      return util.import_app(self.app_u
ri)    File "/env/lib/python3.7/site-packages/gunicorn/util.py", line 358, in import_app      mod = importlib.import_module(module)    File "/opt/python3.7/lib/python3.7/importlib/__init__.py", line 127, in import_module      return
 _bootstrap._gcd_import(name[level:], package, level)    File "<frozen importlib._bootstrap>", line 1006, in _gcd_import    File "<frozen importlib._bootstrap>", line 983, in _find_and_load    File "<frozen importlib._bootstrap>", l
ine 965, in _find_and_load_unlocked  ModuleNotFoundError: No module named 'main'
2020-06-20 06:51:09 default[20200620t115649]  [2020-06-20 06:51:09 +0000] [22] [INFO] Worker exiting (pid: 22)
2020-06-20 06:51:09 default[20200620t115649]  Traceback (most recent call last):    File "/env/lib/python3.7/site-packages/gunicorn/arbiter.py", line 209, in run      self.sleep()    File "/env/lib/python3.7/site-packages/gunicorn/a
rbiter.py", line 357, in sleep      ready = select.select([self.PIPE[0]], [], [], 1.0)    File "/env/lib/python3.7/site-packages/gunicorn/arbiter.py", line 242, in handle_chld      self.reap_workers()    File "/env/lib/python3.7/sit
e-packages/gunicorn/arbiter.py", line 525, in reap_workers      raise HaltServer(reason, self.WORKER_BOOT_ERROR)  gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
2020-06-20 06:51:09 default[20200620t115649]
2020-06-20 06:51:09 default[20200620t115649]  During handling of the above exception, another exception occurred:
2020-06-20 06:51:09 default[20200620t115649]
2020-06-20 06:51:09 default[20200620t115649]  Traceback (most recent call last):    File "/env/bin/gunicorn", line 10, in <module>      sys.exit(run())    File "/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 58, in
run      WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()    File "/env/lib/python3.7/site-packages/gunicorn/app/base.py", line 228, in run      super().run()    File "/env/lib/python3.7/site-packages/gunicorn/app/base.py",
line 72, in run      Arbiter(self).run()    File "/env/lib/python3.7/site-packages/gunicorn/arbiter.py", line 229, in run      self.halt(reason=inst.reason, exit_status=inst.exit_status)    File "/env/lib/python3.7/site-packages/gun
icorn/arbiter.py", line 342, in halt      self.stop()    File "/env/lib/python3.7/site-packages/gunicorn/arbiter.py", line 393, in stop      time.sleep(0.1)    File "/env/lib/python3.7/site-packages/gunicorn/arbiter.py", line 242, i
n handle_chld      self.reap_workers()    File "/env/lib/python3.7/site-packages/gunicorn/arbiter.py", line 525, in reap_workers      raise HaltServer(reason, self.WORKER_BOOT_ERROR)  gunicorn.errors.HaltServer: <HaltServer 'Worker
failed to boot.' 3>

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
Submit an Answer
1 answer

Hi there,

I just came accross this quesiton.

What I could suggest for Django is to follow the steps here on how to Set Up Django with Nginx, and Gunicorn:

https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-16-04

Regarding the 502 error, this means that your backend service is not running so Nginx is failing to connect to the backend, for more information on how to troubleshoot the 502 error, I could suggest following the steps from this answer here:

https://www.digitalocean.com/community/questions/502-bad-gateway-nginx-2

Regards,
Bobby

by Justin Ellingwood
Django is a powerful web framework that can help you get your Python application or website off the ground. Django includes a simplified development server for testing your code locally, but for anything even slightly production related, a more secure and powerful web server...