我有一个在http:// localhost:12345上运行的django应用程序.我希望用户通过网址http://my.server.com/myapp访问它.我使用nginx来反向代理,如下所示:
... ...
server_name my.server.com;
location /myapp {
rewrite /myapp(.*) $1 break;
... ... # proxy param
proxy_pass http://localhost:12345;
}
... ...
Run Code Online (Sandbox Code Playgroud)
问题是,当如上配置时,如何使我的响应页面中的URL具有前缀"/ myapp",以便nginx可以正确地将它们引导到myapp.例如,像"/ foo/far"这样的页面中的url应该更改为"/ myapp/foo/bar"以允许nginx代理到myapp.什么是正确的nginx配置用来实现这一目标?
我可以使用django的设置变量来指定根URL前缀,但它不能灵活,因为变量必须根据不同的nginx配置进行修改(比如有一天nginx可能会将郊区从"/ myapp"更改为"/anotherapp").
我正在寻找一种很好的方法,只使用一个域名在同一台服务器上安装多个完全不同的Django项目.关键是我想要浏览以下内容:
http://192.168.0.1/gallery/#jango 照片库项目
http://192.168.0.1/blog/#a blogging project
这样,我可以通过引用不同的URL在同一台服务器上开发和测试多个django项目.(注意:我不认为这个Django Sites模块是我正在寻找的,因为项目需要与众不同).作为一个例子,PHP的行为就像这样,因为我可以在同一台服务器上安装类似php-gallery和phpmyadmin的东西,只是使用不同的URL路径.
有没有人知道如何使用Apache(使用mod_python或mod_wsgi)在单个服务器上的多个URL下设置多个Django项目的任何好资源?我想知道的事情是如何设置apache.conf,可能的virtualenv设置,以及对urls.py的更改以适应这种情况.我看到的大多数Django部署示例都是针对每个域或子域的一个应用程序.
任何建议都非常感谢.
谢谢,
乔
我需要将不同的Django项目与Django CMS放在同一个域下,例如:
通常我对每个域/项目使用 virtualenv 和 mod_wsgi 。我将需要不同的数据库、媒体文件和 Django 版本。
此处不能选择将项目放在不同的子域下。
可以做吗?我应该如何设置服务器?有什么我应该知道的注意事项吗?
django ×3
deployment ×2
apache ×1
django-cms ×1
nginx ×1
python ×1
subdirectory ×1
virtualenv ×1