通过端口 80 向多个服务器(即 Apache/Node)提供不同域的请求

通过端口 80 向多个服务器(即 Apache/Node)提供不同域的请求

我真正希望做的是在同一个 Raspberry Pi(运行 Debian for Pi)上运行 Node 和 Apache(或者可能是 nginx)。

Apache 可以在同一个 IP 上为多个站点设置虚拟主机,并通过查看请求的域来确定要加载哪个站点,我想以某种方式对多个不同的服务器执行相同的操作。

是否可以在端口 80 上运行某种代理,并在其他端口上运行 apache/node/others 并将特定域请求路由到它们?

答案1

Nginx 在这方面非常擅长。例如:

server {
    listen 80;
    server_name www.example.com


    location / {
      proxy_set_header X-Real-IP  $remote_addr;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header Host $host;
      proxy_pass http://127.0.0.1:81;
      proxy_read_timeout 4m;
    }

    location ~ /\.ht {
      deny all;
    }

    access_log /var/log/nginx/foobar/access.log;

    client_max_body_size 25m;
}

您还可以添加类似的内容(通过使用 nginx 提供图像来减轻底层 apache 的负担):

location ~ /media/(.*)$ {
      alias /var/www/foobar/media/$1;
      expires 7d;
}

相关内容