通过OpenResty修改UserAgent,非常简单,Demo里做了多次反向代理是为了日志输出显示效果。实际应用中不必这么麻烦。

浏览器访问如下地址即可

http://127.0.0.1:10090/

话不多说,直接上配置

upstream webapi_mydemo1{
  server 127.0.0.1:10092;
}

upstream webapi_mydemo2{
  server 127.0.0.1:10093;
}

server {
  listen 10093;

  location / {
    content_by_lua_block{
      ngx.print("HelloWorld")
    }
  }
}

server {
  listen 10092;
  set $newagentheader $http_user_agent;

  location / {
    access_by_lua_block{
      ngx.var.newagentheader ="MyDemo Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"
    }
    proxy_pass http://webapi_mydemo2;
    proxy_set_header User-Agent $newagentheader;
  }
}

server {
  listen 10090;
  set $newagentheader $http_user_agent;
  location / {
    proxy_pass http://webapi_mydemo1;
    proxy_set_header User-Agent $newagentheader;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

以下访问日志

127.0.0.1 - - [23/Jul/2022:10:37:19 +0800] fwf[127.0.0.1] tip[-] - - - - 0.000 - - webapi_mydemo2 GET / HTTP/1.0 "200" 10 "-" "zh-CN" "MyDemo Agent Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"
127.0.0.1 - - [23/Jul/2022:10:37:19 +0800] fwf[127.0.0.1] tip[-] 0.000 0.001 127.0.0.1:10093 0.001 0.001 10 164 webapi_mydemo1 GET / HTTP/1.0 "200" 10 "-" "zh-CN" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"
127.0.0.1 - - [23/Jul/2022:10:37:19 +0800] fwf[-] tip[-] 0.000 0.001 127.0.0.1:10092 0.001 0.001 10 164 127.0.0.1:10090 GET / HTTP/1.1 "200" 10 "-" "zh-CN" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"

通过Nginx(OpenResty)修改UserAgent的更多相关文章

  1. 使用NGINX+Openresty和unixhot_waf开源防火墙实现WAF功能

    使用NGINX+Openresty实现WAF功能 一.了解WAF1.1 什么是WAF Web应用防护系统(也称:网站应用级入侵防御系统 .英文:Web Application Firewall,简称: ...

  2. 火狐浏览器修改userAgent

    火狐浏览器修改userAgent的办法: 在火狐浏览器地址栏输入“about:config”,按下回车进入设置菜单. 找到“general.useragent.override”,如果没有这一项,则点 ...

  3. 我眼中的 Nginx(六):深入 Nginx/Openresty 服务里的 DNS 解析

    张超:又拍云系统开发高级工程师,负责又拍云 CDN 平台相关组件的更新及维护.Github ID: tokers,活跃于 OpenResty 社区和 Nginx 邮件列表等开源社区,专注于服务端技术的 ...

  4. Docker部署Nginx并修改配置文件

    Docker部署Nginx并修改配置文件 一.拉取nginx镜像 docker pull nginx 二.在宿主机中创建挂载目录 mkdir -p /data/nginx/{conf,conf.d,h ...

  5. 解决和排查 "必须使用适当的属性和方法修改 User-Agent" 错误时遇到的一些坑

    解决 必须使用适当的属性和方法修改 User-Agent 错误 问题描述:近在项目中有一个需求为需要在 Http 的Header里面添加一个User-Agent参数,当请求时.项目本身的目标框架是 . ...

  6. Nginx中修改php.ini的上传设置upload_max_filesize的值

    普遍的网络越来越快,以前小家子气的2M上传限制慢慢变得不合时宜了.最近就把2M的限制直接提升到了20M...代码层面很快就修改好了,没什么可说的.但是上线的话还得修改一下服务器的配置.服务器是Ngin ...

  7. 基于 orange(nginx+openresty) + docker 实现微服务 网关功能

    摘要 基于 orange(nginx+openresty) + docker 实现微服务 网关功能 ;以实现 docker 独立容器 来跑 独立语言独立环境 在 同一个授权下 运行相关组合程序..年初 ...

  8. Selenium RemoteWebDriver 利用CDP修改User-Agent

    地球人都知道,如果使用selenium时要修改user-agent可以在启动浏览器时添加配置项,如chromeOptions.addArguments("user-agent=xxx&quo ...

  9. nginx安全:修改对外的服务软件名称并隐藏版本号(nginx1.18.0)

    一,为什么要隐藏nginx真实的软件名称? 1,nginx响应的Server头部都会携带上服务软件的名字和版本信息, 服务器软件的版本信息暴光在外部,很容易被黑客了解到,就通过相应版本的漏洞来攻击服务 ...

随机推荐

  1. MAC 地址为什么不需要全球唯一

    MAC 地址(Media access control address)是分配给网络接口控制器(Network interface controller, NIC)的唯一标识符,它会在网络段中充当网络 ...

  2. sqlx操作MySQL实战及其ORM原理

    sqlx是Golang中的一个知名三方库,其为Go标准库database/sql提供了一组扩展支持.使用它可以方便的在数据行与Golang的结构体.映射和切片之间进行转换,从这个角度可以说它是一个OR ...

  3. linux的简介与安装

    linux简介: https://www.cnblogs.com/pyyu/p/9277153.html Linux就是个操作系统:它和Windows XP.Windows7.8.10什么的一样就是一 ...

  4. windbg的时间旅行实现对 C# 程序的终极调试

    一:什么是时间旅行 简而言之就是把程序的执行流拍成vlog,这样就可以对 vlog 快进或者倒退,还可以分享给别人做进一步的分析,是不是想都不敢想. 很开心的是 windbg preview 版本中已 ...

  5. 一个NIH综合症患者的自白

    一个NIH综合症患者的自白 欢迎关注我的博客,️点他即可. NIH: Not Invented Here 当人们看到一款产品或者任何涉及创意的东西时,常常会有一个想法--这是抄的.也就是说它并非原创, ...

  6. git 本地项目关联新repo

    git initgit remote add origin repo-url git pull origin master --allow-unrelated-histories git add . ...

  7. 877. Stone Game - LeetCode

    Question 877. Stone Game Solution 题目大意: 说有偶数个数字,alex和lee两个人比赛,每次轮流从第一个数字或最后一个数字中拿走一个(偶数个数字,所以他俩拿的数字个 ...

  8. Dockerfile指令与Docker-compose容器编排-搭建docker私有仓库

    目录 一:部署应用映射外部目录(持久化) 总结 二:迁移与备份(容器保存为镜像) 1.django执行gitee,项目提交到远端 2.其他操作 3.操作步骤 4.容器保存为镜像 5.把镜像打包成压缩包 ...

  9. CenterNet和CenterNet2笔记

    CenterNet和CenterNet2笔记 CenterNet是基于anchor-free的一阶段检测算法 CenterNet2是CenterNet作者基于两阶段的改进 CenterNet(Obje ...

  10. vs 快速定位文件

    在进行web开发时,我们经常需要在文件之间进行切换,每次在VS的解决方案中找文件然后打开 非常浪费时间,有没有比较快捷点的方法呢? 1.使用  ReSharper 插件 ReSharper 插件可以在 ...