专栏首页dogfeinginx使用反向代理访问时改写请求

nginx使用反向代理访问时改写请求

问题

假如后端有一个系统访问方式是通过IP加端口的形式访问的,如:10.1.1.12:3000/hello,现在我们想把该资源放到公网上,通过域名的形式访问,在访问之前,需要使用nginx做一层反向代理,而做映射时只需把nginx代理服务器的80端口映射出去即可。

实现

upstream hello {
    server 10.1.1.12:3000 weight=2 max_fails=3 fail_timeout=100s;
}
server {
    listen 80;
    server_name hello.test.com;
    access_log /var/log/nginx/hello.log main;
    
  location /hello {
        proxy_pass http://hello;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarder-For $proxy_add_x_forwarded_for;
        proxy_next_upstream http_502 http_504 error timeout invalid_header;
    }
}

这样是没有问题的,可以代理到后端真实的服务器,但是访问方式为:

<code>hello.test.com/hello</code>

需要在访问时添加请求的地址,比较麻烦,那么如何让Nginx自动添加地址呢?

这里使用rewrite来进行重写请求,示例如下:

upstream hello {
    server 10.1.1.12:3000 weight=2 max_fails=3 fail_timeout=100s;
}
server {
    listen 80;
    server_name hello.test.com;
    access_log /var/log/nginx/hello.log main;

    location =/ {
        rewrite / /hello;
    }

    location / {
        proxy_pass http://hello;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarder-For $proxy_add_x_forwarded_for;
        proxy_next_upstream http_502 http_504 error timeout invalid_header;
    }
}

这样就可以啦

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • nginx自定义header问题记录

    针对访问后台人数过多,导致源站压力巨大的问题,研发自定义了一个header信息,用来设置缓存,并判断是否命中header。针对这个问题,在测试环境进行测试时,发...

    dogfei
  • maven打包缺少jar包的解决办法

    安装好maven后,修改conf目录下的settings.xml文件,配置用户名和密码,找到<server> </server>标签添加nexus私服的用户名跟...

    dogfei
  • php-redis安装脚本

    dogfei
  • 【Nginx]配置文件详解

    landv
  • 关于mysql的join

    在qq群,经常听到 "最好不要用join","join用了网站会很卡"类似与这样的言论,那么事实上是这样吗?

    仙士可
  • 数据源控件参数类Parameter

    Parameter 类表示由 ASP.NET 数据源控件用来选择、筛选或者修改数据的参数化 SQL 查询、筛选表达式或业务对象方法调用中的参数。Paramet...

    张善友
  • FRP内网穿透工具

    frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。主要他是一个开源的。

    Javen
  • 直播分享:面对流量洪峰,Kafka如何保证数据安全和系统高吞吐量?

    ? 本文转自公众号:腾讯云中间件(ID) 导语:受疫情影响,在线教育和医疗遇到了流量洪峰,如何应对以保证数据的安全和系统的稳定呢?本次直播将由腾讯云中间件C...

    腾讯技术工程官方号
  • pro、pre、test、dev环境

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.n...

    林老师带你学编程
  • (转) Dockerfile 中的 COPY 与 ADD 命令

    Dockerfile 中提供了两个非常相似的命令 COPY 和 ADD,本文尝试解释这两个命令的基本功能,以及其异同点,然后总结其各自适合的应用场景。

    mafeifan

扫码关注云+社区

领取腾讯云代金券