我想使用配置为反向代理的 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;
}