nginx的rewrite怎么带入原有请求的Headers里面的值

发布于 2022-09-05 23:26:49 字数 1158 浏览 21 评论 0

我有个请求地址比如:http://a.example.com/xx 我想在nginx里面配置一下,当访问http://a.example.com/xx跳转去访问http://b.example.com/xx,我用了rewrite模块,但是访问http://a.example.com/xx时的header值没有带过去,这有什么解决方案?
以下是我的nginx配置:

server {
    listen       80;
    server_name  a.example.com;
    listen       443 ssl;

    ssl_certificate      cert/a/214137293780676.pem;
    ssl_certificate_key  cert/a/214137293780676.key;

    location / {
       proxy_buffer_size  128k;
       proxy_buffers   32 32k;
       proxy_busy_buffers_size 128k;
       fastcgi_buffer_size 128k;
       fastcgi_buffers 32 32k;
       proxy_ignore_client_abort on;
       index  /index;
       proxy_pass  http://127.0.0.1:10000;
       proxy_redirect         off;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header Host $http_host;
       rewrite '^/xx$' http://b.example.com/xx;
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眼眸里的快感 2022-09-12 23:26:49

这里rewrite进行的是302跳转,302跳转是不能传递原来请求的header的。
如果要传递header, 你需要配置反向代理

server {
    listen       80;
    server_name  a.example.com;
    listen       443 ssl;

    ssl_certificate      cert/a/214137293780676.pem;
    ssl_certificate_key  cert/a/214137293780676.key;

    location / {
       proxy_buffer_size  128k;
       proxy_buffers   32 32k;
       proxy_busy_buffers_size 128k;
       fastcgi_buffer_size 128k;
       fastcgi_buffers 32 32k;
       proxy_ignore_client_abort on;
       index  /index;
       proxy_pass  http://127.0.0.1:10000;
       proxy_redirect         off;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header Host $http_host;
    }
    location = /xx {
        proxy_pass http://b.example.com/xx;
        proxy_set_header Host b.example.com;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        break;
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文