Sockets nginx配置为从同一服务器服务多个站点(子域)

Sockets nginx配置为从同一服务器服务多个站点(子域),sockets,nginx,flask,routing,uwsgi,Sockets,Nginx,Flask,Routing,Uwsgi,我想从同一台机器服务多个站点 对于每个站点,我使用nginx监听一个端口与appserver(uwsgi)通信,另一个端口作为代理服务器。 每个站点使用uwsgi和烧瓶 所有站点共享相同的API结束点名称,因此唯一的区别将是子域名 大概是这样的: server { listen 8000 default_server; server_name 00.myexample.com; ... } # Set cache dir proxy_cache_path /tm

我想从同一台机器服务多个站点

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

所有站点共享相同的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\u name
和不同的端口是否足以避免冲突(例如在缓存中)? uwsgi还应该为每个应用监听不同的端口吗?(现在,它通过每个站点文件夹中的套接字与nginx通信)


要将多个子域路由到同一台计算机,您会采用哪种配置?

您可以在conf文件中使用多个
服务器
块,只要每个
服务器名称不同,它们就会得到明确的处理。如果每个子域的后端完全相同,则可以对每个
服务器
块使用相同的
代理传递
值。否则,您必须为每个后端运行一个进程,并让它在不同的端口上侦听。

当使用同一服务器时,您“可以为每个服务器块的代理\u pass使用相同的值”。所谓值,是指侦听同一端口吗?e、 g.
server{server\u name 00..location/{proxy\u passhttp://00.myexample.com:8000}..}和服务器{server_name 01..location/{proxy_passhttp://01.myexample.com:8000;}..}
?它不会与nginx缓存冲突吗?我可以将服务器名称路由到同一个IP计算机但在不同端口上吗?e、 g.00.example.com XX.XXX.XX.XXX:8000、01.example.com XX.XXX.XX.XXX:7000上的域?哪个港口“一般”免费?