如何在nginx反向代理后面提供两个Web应用程序

Eri*_*rik 16 proxy nginx express

我有两个Web应用程序(node.js表达应用程序),web1web2.这些Web应用程序期望在那些通常类似于网站托管http://www.web1.comhttp://www.web2.com.我想收留他们的背后nginx的反向代理https://www.example.com/web1https://www.example.com/web2.我不想将这两个网络应用程序公开为两个子域example.com.

这是我的nginx配置的片段(没有SSL终止详细信息),我希望可以实现这一点:

server {
  listen 443;
  server_name .example.com;

  location /web1 {
    proxy_pass http://www.web1.com:80;
  }

  location /web2 {
    proxy_pass http://www.web2.com:80;
  }
}
Run Code Online (Sandbox Code Playgroud)

除了Web应用程序使用的相对链接外,此方法有效.因此,网络应用程序web1将具有相关链接,如/js/script.js无法正确处理.

完成此任务的最佳/标准方法是什么?

bdn*_*n02 4

我想是这样的:

server {
  listen 443;
  server_name .example.com;
  location /web1 {
    proxy_pass http://www.web1.com:80;
  }
  location /web2 {
    proxy_pass http://www.web2.com:80;
  }
  location / {
    if ($http_referer ~* (/web1) ) {
        proxy_pass http://www.web1.com:80;
    }
    if ($http_referer ~* (/web2) ) {
        proxy_pass http://www.web2.com:80;
    }
  }
Run Code Online (Sandbox Code Playgroud)