同一URL下的多个Django项目

时间:2014-11-26 15:38:45

标签: django nginx amazon-ec2 port

我在Amazon EC2上运行了两个单独的Django项目,它们具有不同的数据库并使用不同的设置文件。

为此,我使用Nginx,project1侦听端口80(网址为www.domain.com),project2侦听端口{{1} (url www.domain.com:81)。

在某些地方使用我的网站时,我注意到81速度过慢,原因可能是某些网络阻止了对特定端口的请求。

所以,我只想使用端口project2的两个项目。是否有可能,可能在" .com"?

之后使用不同的URL

1 个答案:

答案 0 :(得分:3)

当然可以。

看看Nginx的“服务器块”来完成这个...... http://wiki.nginx.org/ServerBlockExample

需要注意的是,我不相信可以创建“服务器块”并基于“.com”之后的“不同URL”进行路由?从技术上讲,它将是.com。

之后的URL路径

但是,如果您有不同的“服务器名称”(http://nginx.org/en/docs/http/server_names.html),那么您可以设置不同的“服务器块”来处理对同一个盒子上运行的不同Django应用程序的请求。

例如,假设您使用域'foo.com'的Application1和使用域'bar.com'的Application2。典型的设置看起来像,

http {
  index index.html;

  server {
    server_name foo.com;
    access_log logs/application1.access.log main;

    root /var/www/application1.com/htdocs;
  }

  server {
    server_name bar.com;
    access_log  logs/application2.access.log main;

    root /var/www/application2.com/htdocs;
  }
}

确保foo.com和bar.com都指向运行Django应用程序的服务器。

如果您愿意,也可以使用子域名... app1.foo.com,app2.foo.com ...两者都是有效的server_name值。