nginx配置从同一服务器

时间:2017-01-07 22:16:34

标签: sockets nginx flask routing uwsgi

我想从同一台机器上提供多个站点。

对于每个站点,我使用nginx监听端口与app服务器(uwsgi)和另一个端口作为代理服务器进行通信。 每个站点都使用uwsgi和flask。

所有网站共享相同的API终点名称,因此唯一的区别是子域名。

这样的事情:

server {

    listen 8000 default_server;

    server_name 00.myexample.com;

    ...

}

# Set cache dir
proxy_cache_path /tmp/nginx levels=1:2 keys_zone=my_zone:10m max_size=50m inactive=60m;
proxy_cache_key "$scheme$request_method$host$request_uri";


# Virtualhost/server configuration
server {
    listen  80  default_server;

    server_name 00.myexample.com;

    location / {

        proxy_cache my_zone;
        include proxy_params;
        proxy_pass http://00.myexample.com:8000;
    }

...

}

我想,要复制多个网站(00.myexample.com,01.myexample.com),我只需要听不同的端口。

server_name和不同的端口是否足以避免冲突(例如在缓存中)? uwsgi还应该为每个应用程序收听不同的端口吗? (现在通过每个站点的文件夹中的socket与nginx进行通信)

您可以使用哪种配置将多个子域路由到同一台计算机?

1 个答案:

答案 0 :(得分:0)

您可以在conf文件中使用多个server块,只要每个server_name不同,就会明确区别对待。如果每个子域的后端完全相同,则可以为每个proxy_pass块使用相同的server值。否则,您必须为每个后端运行一个进程,并让它在另一个端口上侦听。