nginx根据url中的参数做代理转发

狡猾的骗骗花
• 阅读 2080

功能: 一个nginx代理转发,代理目标地址来自url中的host参数

location / {
  error_page 418 = @other;
  recursive_error_pages on;
  resolver 1.2.4.8;
  set $host '';
  if ($query_string ~ host=(http(s)?:\/\/[^\/]+(.com|.cn)(.*)$)){
     set $host $1;
  }
 set $args_tmp &${args};
 if ($args_tmp ~* ^(.*)(&host=[https:\/\/|\w%@\.]*)(.*)$){
    set $args $1$3;
  }
  #除去参数开头可能带有&字符的情况
 if ($args ~* ^&(.*)$){
     set $args $1;
  }
  if ($host != ''){
     # rewrite ".*" ${host}/?${args}? break;
     proxy_pass ${host}/?$args;
     #return 200 "${args}、${tag}";
  }
  if ($host = ''){
     return 418; 
  }
}  
location @other {

   # 这里是TP的伪静态
   try_files $uri $uri/ /index.php$is_args$query_string;  
}
点赞
收藏
评论区
推荐文章
Stella981 Stella981
2年前
Nginx的反向调度功能
1.案例实现Nginx反向代理;2.反向代理的理论知识拓展.一,实验Nginx的反向代理功能 使用Nginx实现Web反向代理功能,实现如下功能:后端Web服务器两台,可以使用httpd实现Nginx采用轮询的方式调用后端Web服务器两台Web服务器的权重要求设置为不同的值最大失败次数为1,失败超时时间为
Stella981 Stella981
2年前
Nginx系列之Linux系统安装部署Nginx环境
1、什么是nginx?Nginx(enginex)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。如图,nginx常被用于做代理!这里写图片描述(https://oscimg.oschina.net/oscnet/upde667b054d471beaa78cc5cf2a12a7b5.p
Stella981 Stella981
2年前
Nginx配置实验反向代理
l 实验要求浏览器访问8083.mine.com:8081地址,(Nginx端口是8081)通过Nginx服务器反向代理监听请求,将请求转发到tomcat服务器上,实现真正内容的访问。l 实验环境一台已安装Nginx(port:8081),tomcat8.5.39(port:8083)的CentOS服务
Stella981 Stella981
2年前
Nginx(Windows)
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。反向代理方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。比如我
Stella981 Stella981
2年前
Nginx Linux详细安装部署教程
转发:https://www.cnblogs.com/taiyonghai/p/6728707.html一、Nginx简介Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,具体简介我就不介绍了百度
Wesley13 Wesley13
2年前
DHCP中续代理
什么是DHCP中继代理?答:DCHP中继代理(即DHCPRelay Agent)用于转发来自于另一个没有DHCP服务器子网段中的客户端的DHCP请求,即当一台DCHP客户机发起请求后,此时DHCP中继代理就会将已经预先定义好的DHCP服务器的信息转发给客户如果客户机与DHCP服务器处在同一个子网段,则客户机当然能够顺利动态获取到IP地址,但是客
Easter79 Easter79
2年前
Tengine 添加第三方监控模块nginx
一、概述  除nginx官网源码提供的各种模板,nginx还有第三方模块。官方文档中也列出了nginx的很多第三方模块,除官网之外,还有很多的有用的模块也能在Github上找到。官网第三方模块地址:https://www.nginx.com/resources/wiki/modules/公司前端使用的是nginx代理,反向代理了很多域名
Stella981 Stella981
2年前
Nginx学习笔记——upstream
Nginx除了作为反向代理,还有一个很重要的特性,负载均衡。upstream就是用来实现负载均衡的一个节点。upstreamdispatcher{    serverip:port;    serverip2:port2;}再通过配置location中的proxy\_pass为http://dispatcher$r
Stella981 Stella981
2年前
Nginx 反向代理可以缓存 HTTP POST 请求页面吗?
Nginx反向代理可以缓存HTTPPOST请求页面吗? 20170905 景峯本文节选自《NetkillerWeb手札》作者:netkiller网站:http://www.netkiller.cn答案是可以! 因为nginx使用url作为缓存的key
狡猾的骗骗花
狡猾的骗骗花
Lv1
男 · 小太阳幼稚园 · 学生
_(:з」∠)_ 我好惨啊
文章
5
粉丝
2
获赞
7