使用Pyramid + Nginx + Uwsgi在同一个域上提供两个独立的站点

时间:2014-05-14 01:40:24

标签: nginx google-analytics pyramid

我有两个版本的网站我想运行测试,以查看用户与哪些整体布局进行交互。我将使用谷歌分析运行这些测试,因此我认为我需要一个站点布局可以作为另一个的子uri访问。例如,如果用户访问www.mysamplesite.com,他们会看到该网站的一个版本,如果他们访问www.mysamplesite.com/grid,他们会看到另一个版本。

甚至可以使用Pyramid + Nginx + uwsgi吗?如果是这样,是否有关于我将如何做到这一点的指针(我尝试了许多事情无济于事)?我是否只需要为nginx添加一个新的.conf文件,该文件侦听不同的端口,然后从我的标准服务器配置中“转发”该端口。换句话说,如果对于我的常规站点配置,我有类似的东西:

server{
    listen: 80;
    server_name www.mysamplesite.com;

    location /grid {
        uwsgi_pass 127.0.0.1:81;
    }

 }

然后有另一个配置文件,如:

server{
    listen: 81;
    server_name www.mysamplesite.com;


    location /grid{
        include uwsgi_params;
        uwsgi_pass unix:///blah
}

应该是这样的工作,以便正确地提供两个网站版本?显然这些都不是完整的配置文件,只是想法。我尝试了许多不同的配置,感觉这是不可能的,或者我做的是愚蠢的事情。感谢任何指示,因为我对这些东西显然有点新鲜。

1 个答案:

答案 0 :(得分:0)

网站的代码库是否相同? 如果网站的代码库相同,您只需将另一个网址/grid映射到您需要的视图。

如果代码库不同,您可以通过类似的方式在端口80上为它们提供服务,如果我没有错。

    server{
        listen: 80;
        server_name www.mysamplesite.com;

        location / {
            root /path/to/your/project/dir;
            include uwsgi_params;
            uwsgi_pass /location/to/your/uwsgi/socket;  #or if your are using http-socket put that instead
        }            
        location /grid{
            root /path/to/your/project/dir2;
            include uwsgi_params;
            uwsgi_pass /location/to/your/uwsgi/socket2;  #or if your are using http-socket put that instead
        }
    }