如何在一个域下为多个网站设置Nginx?

时间:2019-03-30 07:20:55

标签: django nginx uwsgi

我使用django创建了两个网站(带有数据库),我们将其称为web1(数据库= web1_db)和web2(数据库= web2_db)。我想以这种方式在一个域下运行它们(例如,main.html,每个网站都有url.py来定向页面):

www.mywebsite.com/web1/main.html

www.mywebsite.com/web2/main.html

我正在使用nginx和uwsgi服务该网站,并且我可以使web1和web2分别工作。为了同时服务于上述两个网站,我以皇帝模式设置了uwsgi(我认为是成功的),但是我不知道如何配置nginx才能使它工作。有人可以给我一些建议吗?

我的单个网站的nginx conf如下:

upstream mywebsite {
server unix:///tmp/mywebsite.sock;
}

server {
listen 80;
server_name www.mywebsite.com;
proxy_http_version 1.1;
ssl_protocols TLSv1.2;

location /media{
    alias /pathtomedia;
}

location /static{
    alias /pathtostatic;
}

location / {
    include /etc/nginx/uwsgi_params;
    include /etc/nginx/mime.types;
    uwsgi_pass mywebsite;
}
}

1 个答案:

答案 0 :(得分:0)

您必须使用两个(web1和web2)上游,并且每个位置块location /web1 { something; }都要向上游使用uwsgi_pass。

您可能还需要重写URL,以使URL的实际“ / web *”部分不会传递到上游。基本上,因此上游认为请求实际上是“ / whatever”而不是“ / web1 / whatever”。

那句话,这完全取决于您的设置,并且任何人都可以在任何URL重写方面提供帮助(即使需要),也需要更多信息。

您可能想查看此答案Defining correctly Nginx server block for two django apps and no server_name,这可能会对您有所帮助。

相关问题