如何从 Nginx 反向代理向具有 Apache 实例的服务器发送请求

如何从 Nginx 反向代理向具有 Apache 实例的服务器发送请求

我想使用配置为反向代理的 Nginx 服务器向托管多个网页的 Apache 服务器发送请求。场景如下:

  • DNS 地址为 host.example.com 的 Web 服务器,提供静态网页服务。
  • 上述服务器上运行的 Web 应用。CNAME 记录 webapp.target.com 指向 host.example.com。将此记录输入浏览器后,将返回正确的 Web 应用(与静态页面不同)。
  • 一个 Nginx 服务器,其中有一个条目将 webapp-proxy.example.com 定向到 webapp.target.com(具有相应的 DNS 条目,将 webapp-proxy.example.com 指向 Nginx 服务器)。

使用我当前的设置,当我在浏览器中访问 webapp-proxy.example.com 时,我会被重定向到 host.example.com。相反,我希望被重定向到 webapp.target.com。

我目前有此配置设置(已编辑以删除不必要的信息:SSL、缓存等)。我假设我需要设置一个额外的标头。它目前在本地网络上运行,但最终将使用此代理来允许互联网用户访问该网站。

server {
    listen      80;
    server_name webapp-proxy.example.com;
    rewrite ^(.*) https://$server_name$1 permanent;
}

server {
    listen      443 ssl;
    server_name webapp-proxy.example.com;

    ssl                 on;
    ssl_certificate     /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_set_header Host $host;
        proxy_set_header Referer $http_referer;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded_For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded_Proto https;

        proxy_pass       http://webapp.target.com;
}

相关内容