如何使用uwsgi挂载Django应用程序? [英] How to Mount Django App with uwsgi?

查看:185
本文介绍了如何使用uwsgi挂载Django应用程序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用uwsgi部署Django应用。
我希望在以下位置访问该应用程序:

I am using uwsgi to deploy a Django app. I want the app to be accessed under:

SERVER_URL:PORT/APP_NAME

我的uswgi配置为:

my uswgi configuration are:

[uwsgi]
http=:PORT
threads = 10
die-on-term=true
chdir = /dir/to/my/app/
home = /dir/to/my/app/
logto = /dir/to/log/LOG.log    
wsgi-file = /dir/to/my/app/main_package/wsgi.py
mount = /APP_NAME=/dir/to/my/app/main_package/wsgi.py

I无法使安装工作。
我在 SERVER_URL:PORT 下而不是在 SERVER_URL:PORT / APP_NAME 下获得应用。

I can't get the mount to work. I get the app under SERVER_URL:PORT and not under SERVER_URL:PORT/APP_NAME.

我得到的日志是:

*** Starting uWSGI 1.9.14 (64bit) on [Sun Oct 20 11:12:49 2013] ***
compiled with version: 4.6.3 on 15 October 2013 13:08:46
os: Linux-3.2.0-29-generic #46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012
nodename: SERVER_URL
machine: x86_64
clock source: unix
detected number of CPU cores: 1
current working directory: /
detected binary path: /dir/to/my/app/bin/uwsgi
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 15886
your memory page size is 4096 bytes
detected max file descriptor number: 1024
building mime-types dictionary from file /etc/mime.types...530 entry found
lock engine: pthread robust mutexes
uWSGI http bound on :8016 fd 4
spawned uWSGI http 1 (pid: 21029)
uwsgi socket 0 bound to TCP address 127.0.0.1:60322 (port auto-assigned) fd 3
Python version: 2.7.3 (default, Apr 10 2013, 06:31:07)  [GCC 4.6.3]
Set PythonHome to /dir/to/my/app/
Python main interpreter initialized at 0x22c6830
python threads support enabled
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 165584 bytes (161 KB) for 10 cores
*** Operational MODE: threaded ***
WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x22c6830 pid: 21028 (default app)
mounting /dir/to/my/app/main_package/wsgi.py on /APP_NAME
WSGI app 1 (mountpoint='/APP_NAME') ready in 0 seconds on interpreter 0x276e1b0 pid: 21028
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI worker 1 (and the only) (pid: 21028, cores: 10)

我还尝试从uswgi配置中删除 wsgi文件,并仅保留 mount 配置。我得到了

I also tried to delete wsgi-file from the uswgi configuration, and leave only the mount configuration. I got:

mounting /dir/to/my/app/main_package/wsgi.py on /APP_NAME
WSGI app 0 (mountpoint='/APP_NAME') ready in 0 seconds on interpreter 0x24ae780 pid: 11515 (default app)

仍然未正确安装该应用。

And still the app wasn't mounted correctly.

如何安装我的应用?

聚苯乙烯
我想避免使用nginx。

P.S. I want to avoid using nginx.

推荐答案

nginx无法将正确的SCRIPT_NAME(和PATH_INFO)传递给uWSGI。您需要告诉uWSGI使用--manage-script-name

nginx cannot pass the correct SCRIPT_NAME (and PATH_INFO) to uWSGI. You need to tell uWSGI to make translation by itself with --manage-script-name

通过不需要wsgi文件的方式,因为mount已经加载了它

By the way you do not need wsgi-file as mount already loads it

这篇关于如何使用uwsgi挂载Django应用程序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆