我想从同一台机器上提供多个站点。
对于每个站点,我使用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进行通信)
您可以使用哪种配置将多个子域路由到同一台计算机?
答案 0 :(得分:0)
您可以在conf文件中使用多个server
块,只要每个server_name
不同,就会明确区别对待。如果每个子域的后端完全相同,则可以为每个proxy_pass
块使用相同的server
值。否则,您必须为每个后端运行一个进程,并让它在另一个端口上侦听。