简体   繁体   中英

502 Error in MySQL Connection in uWSGI and Nginx

I am new with Nginx and uWSGI.

I have updated my index.py at /var/www/app/ directory. and now when I try to run the http://127.0.0.1/ or cp.myhost.com I got a 502 Bad Gateway Error

This is the config file of nginx:

`

server {

# Change this if you want to serve your application on another port
listen 80;

# Replace this with your domain name
server_name cp.myhost.com;

# You can use virtual directory like '/apps/' here, but remember that
# this should match 'urls' defined in your web.py application file
location / {
include uwsgi_params;

# This should match the 'socket' entry in your uwsgi configuration
#uwsgi_pass unix:///tmp/uwsgi_vhosts.sock;
uwsgi_pass 127.0.0.1:8080;

# This is the absolute path to the folder containing your application
uwsgi_param UWSGI_CHDIR /var/www/apps;

# This is actually not necessary for our simple application,
# but you may need this in future
uwsgi_param UWSGI_PYHOME /var/www/apps;

# This is the name of your application file, minus the '.py' extension
uwsgi_param UWSGI_SCRIPT index;
 }
}

`

and this is my code at /var/www/app/index.py

import web
import MySQLdb
import datetime

app = web.application(urls, globals())

urls = (
   '/', 'index'
)

class index:
   def GET(self):
       db = MySQLdb.connect(host="localhost", 
                     user="root",
                      passwd="",
                      db="cw_api")

       cur = db.cursor()

       try:
          cur.execute("SELECT MAX(sync_id) FROM settings_sync;")      
          db.commit()
          print cur.fetchone()[0]
       except:
          db.rollback()

       sql = "SELECT * FROM Table1 LEFT JOIN Table2 ON.... "
       srtr = "<style>table, th, td {border: 1px solid black;}</style><table><tr><th>Name</th><th>Contact</th></tr>"
    try:
         # Execute the SQL command
       cur.execute(sql)
       # Fetch all the rows in a list of lists.
      results = cur.fetchall()
      for row in results:          
          srtr = srtr + "<tr><td>" + row[0] + "</td>"
          srtr = srtr + "<td>" + row[1] + "</td>"
          srtr = srtr + "</td></tr>"

     except:
        print "Error: unable to fecth data"
     db.close()

    srtr = srtr + "</table>"
    return srtr

 if __name__ == "__main__": app.run()

 application = app.wsgifunc()

I'm new with this so please help me... I think the issue is in my code but it runs smoothly in my local computer. I can't trace where is the error in my code...

I think the error is on this code:

 db = MySQLdb.connect(host="localhost", 
                 user="root",
                  passwd="",
                  db="cw_api")

 cur = db.cursor()

I tried to change host value into 127.0.0.1 but nothing happens.

I have this in /var/log/uwsgi/app/vhost.log

libgcc_s.so.1 must be installed for pthread_cancel to work
- DAMN ! worker 1 (pid: 18262) died, killed by signal 6 :( trying respawn ...
- Respawned uWSGI worker 1 (new pid: 19584)
- WSGI app 0 (mountpoint='cp.myhost.com|') ready in 0 seconds on    interprete$
cp.myhost.com {address space usage: 94265344 bytes/89MB} {rss usage: 1175961$
libgcc_s.so.1 must be installed for pthread_cancel to work
- DAMN ! worker 1 (pid: 19584) died, killed by signal 6 :( trying respawn ...
- Respawned uWSGI worker 1 (new pid: 19597)
libgcc_s.so.1 must be installed for pthread_cancel to work
- DAMN ! worker 1 (pid: 19597) died, killed by signal 6 :( trying respawn ...
- Respawned uWSGI worker 1 (new pid: 19633)
libgcc_s.so.1 must be installed for pthread_cancel to work
- DAMN ! worker 1 (pid: 19633) died, killed by signal 6 :( trying respawn ...
- Respawned uWSGI worker 1 (new pid: 19638)
libgcc_s.so.1 must be installed for pthread_cancel to work
- DAMN ! worker 1 (pid: 19638) died, killed by signal 6 :( trying respawn ...
- Respawned uWSGI worker 1 (new pid: 19677)

on my nginx/error.log I got this:

.. 20092#0: *5 upstream prematurely closed connection while reading response header from upstream, ...

I came across this error recently as well and have posted an answer here https://stackoverflow.com/a/31621481/828841

[uwsgi]
...
limit-as = 512

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM