根据 http 标头将 http 端口转发到同一台机器上的另一个端口?

根据 http 标头将 http 端口转发到同一台机器上的另一个端口?

我计划在同一台机器上建立两个网站。第一个网站在端口 8433 上运行,第二个网站在端口 9433 上运行

我正在使用 ubuntu 20.04 假设我有两个域,假设 foo.me 和 bar.me 两个域都指向同一个公共 IP 和不同的 SSL。

假设有对端口 80 或 443 的传入请求

如果 HTTP 标头包含foo.me那么请求将转发到端口 8433

如果 HTTP 标头包含吧我那么请求就会转发到 9433。

答案1

由于您有两个 https 站点,因此您需要有两个虚拟主机,因此无需再次检查 http 标头。正如 Gerald 在上面回复中指出的那样,最好的方法是按以下方式设置(对于 nginx):

server {
  listen 443;
  server_name foo.me;
  root /var/www/html;
  
  # SSL options left out for simplicity

  location / {
    proxy_pass http://localhost:8433/;
  }
}

server {
  listen 443;
  server_name bar.me;
  
  # SSL options left out for simplicity
  
  location / {
    proxy_pass http://localhost:9433/;
  }
}

端口 80 也一样 - 只需替换“listen”中的数字,并且不要输入 SSL 相关的指令

相关内容