【问题标题】:nginx rewrite url in the proxy pagenginx 重写代理页面中的 url
【发布时间】:2016-10-06 06:47:28
【问题描述】:

我在使用通过 nginx 代理运行的页面时遇到了一些问题。 这个页面确实调用了其他内部服务器,我想用 nginx 重写这些 URL。

我已经为以下项目运行了代理通行证:

foo.site.internal --> foo.site.nl(公共) 该站点内部,需要一些其他服务,例如: foo2.site.internal:1400/json/api/call/bla

目前 foo.site.nl 正在尝试通过一些 javescript 使用来接收这些调用。但这是不可能的,因为最终用户无法连接到 foo2.site.internal

所以我创建了一个反向代理: foo2.site.internal:1400 运行在:foo.site.nl:1400,所以我想在不更改后端站点配置的情况下完成的是:

将页面中的 foo2.site.internal:1400/json/api/call/bla 重写为 foo.site.nl:1400/json/api/call/bla

用 nginx 可以做到这样的事情吗?

我当前的配置:

server {
   listen 443 ssl;
   ssl_certificate /etc/nginx/ssl/site.nl.cert;
   ssl_certificate_key /etc/nginx/ssl/site.nl.key;

  server_name foo.site.nl;

  location / {
    proxy_intercept_errors on;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://foo.site.internal/;
  }
}

server {
  listen      14000 default_server;
  server_name foo.site.nl;
  location / {
    proxy_pass       http://foo2.site.internal:14000;
    proxy_set_header Host foo2.site.internal:14000;
  }
}

【问题讨论】:

    标签: nginx url-rewriting proxy


    【解决方案1】:

    你可以使用这个配置:

    server {
       listen 443 ssl;
       ssl_certificate /etc/nginx/ssl/site.nl.cert;
       ssl_certificate_key /etc/nginx/ssl/site.nl.key;
    
      server_name foo.site.nl;
    
      location / {
        proxy_intercept_errors on;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://foo.site.internal/;
      }
    }
    
    server {
      listen      14000 default_server;
      server_name foo.site.nl;
      location / {
        try_files $uri $uri/ /index.php?$args;
        proxy_pass       http://foo2.site.internal:14000;
        proxy_set_header Host foo2.site.internal:14000;
      }
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-01
    • 2018-04-06
    • 2015-12-27
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    相关资源
    最近更新 更多