problem summary: novice programmers intend to write a simple project to display data in Ubuntu16.04,Python3.5,Django2.0, only one App, test is correct, and intend to deploy in NGINX+uWSGI. But there was a problem during the test.
paste the code first
-
The
- project is written under / var/www/, and the name onco, establishes an app as current.
- setting is like this (in addition to the database, App has been changed, something about static files has been added below):
import os
DEBUG = False
ALLOWED_HOSTS = ["*"]
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"myapp",
]
...
STATIC_URL = "/static/"
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
- during the deployment of uWSGI, the test.py used for testing is
-sharp!/usr/bin/python
def application(env, start_response):
start_response("200 OK", [("Content_Type", "text/html")])
return [b"Congraduation!!! uWSGI Testing OK!!!"]
pass the uwsgi-- http: 8001-- wsgi-file test
test, and pass the uwsgi-- http: 8001-/ var/www/onco-- module onco.wsgi
test when testing the project.
- install Nginx. The nginx welcome interface appears after access to port 80.
- configure Nginx. Myconfig: is established under the project directory
upstream django {
server 127.0.0.1:9002;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
index index.html index.htm index.nginx-debian.html;
server_name _;
location /static/ {
alias /var/www/onco/currenct/static/;
}
location / {
root /var/www/onco; -sharp
uwsgi_pass django;
include /var/www/onco/uwsgi_params; -sharpuwsgi_params
}
}
The uwsgi_params file is also written in this directory.
- when the test runs uwsgi-- socket: 9002-- wsgi-file test, run log:
*** Starting uWSGI 2.0.17.1 (64bit) on [Tue Jul 31 13:10:36 2018] ***
compiled with version: 5.4.0 20160609 on 30 July 2018 04:21:16
os: Linux-4.13.0-36-generic -sharp40~16.04.1-Ubuntu SMP Fri Feb 16 23:25:58 UTC 2018
nodename: ubuntu
machine: x86_64
clock source: unix
detected number of CPU cores: 1
current working directory: /var/www/onco
detected binary path: /usr/local/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
*** WARNING: you are running uWSGI without its master process manager ***
your processes number limit is 3768
your memory page size is 4096 bytes
detected max file descriptor number: 65535
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to TCP address :9002 fd 3
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
Python version: 3.5.2 (default, Nov 23 2017, 16:37:01) [GCC 5.4.0 20160609]
*** Python threads support is disabled. You can enable it with --enable-threads ***
Python main interpreter initialized at 0x1569890
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 72904 bytes (71 KB) for 1 cores
*** Operational MODE: single process ***
WSGI app 0 (mountpoint="") ready in 0 seconds on interpreter 0x1569890 pid: 12160 (default app)
uWSGI running as root, you can use --uid/--gid/--chroot options
Web prompt after visiting the interface
192.168.0.105
ERR_EMPTY_RESPONSE
background prompt invalid request block size: 21573 (max 4096) .skip
. The
tutorial tells me to increase buffer, so I use uwsgi-- socket: 8011-- wsgi-file test.py-- buffer-size 32768
to run, and still get:
192.168.0.105
ERR_EMPTY_RESPONSE
but this time the background prompt becomes
uwsgi_proto_uwsgi_parser (): Success [proto/uwsgi.c line 40]
so the test nginx has not been able to proceed. The online tutorial says that because I didn"t use socket, I don"t know where the configuration was wrong, so that nginx and uwsgi have been unable to communicate
.Please do not hesitate to comment