当前位置: 首页 > news >正文

nginx根据url参数动态代理

nginx根据url参数动态代理

请求url格式,其中参数proxy后面的url就是需要访问的真实地址:
http://localhost:9388/?proxy=http://localhost:8038/Content/layui/font/iconfont.woff?v=256
http://localhost:9388/?proxy=http://localhost:8072/article/ArticleInfo/12309f4e71be45bf943f5b1346162e42
http://localhost:9388/?proxy=http://localhost:8038/user/login
http://localhost:9388/?proxy=http://99.89.11.137:8833/

server {listen  9388;server_name  localhost;	resolver   192.168.2.1;    # 配置DNS# resolver   192.168.2.234;	  # 申明变量set   $realHost    "333";		 set 	$backend_host   "333";	#获取url的域名if ($arg_proxy ~ ^(http(s)?://)?([^/?]*)(.*)?$ ){set 	$backend_host	 $3;}#解析真实后台地址域名,针对于请求css、js文件 if ($http_referer   ~*     proxy=(http(s)?://)?([^/?]*)(.*)?$	){set   $realHost     $3;}#  当下载css文件里面的相对路径文件时,会出现500错误	# 比如http://localhost:9388/Content/layui/font/iconfont.woff2?v=256		if (	$realHost   =   "333"	){set   $realHost     $cookie_cookieHost;} location  /  {	proxy_set_header 	Host	 						 $backend_host;proxy_set_header    X-Real-IP   	 		     $remote_addr;proxy_set_header    X-Forwarded-For   	 $remote_addr;proxy_set_header		whl_host	 			     $backend_host;			    #自定义响应头add_header 		whl_host 	 $backend_host; add_header 		whl_url 	 $arg_proxy; 		 # 请求图片、css、js		 if  (  $http_Sec_Fetch_Dest   ~*   (image|script|style|font)   	){						add_header 		whl_file_host 	 $realHost; add_header 	    whl_file_url	     $uri;	proxy_pass	  http://$realHost;  	#	有效break; }#  接口请求if ( $http_X_Requested_With   ~*   XMLHttpRequest  ){			add_header 		whl_XMLHttpRequest_host 	 $realHost; add_header 	    whl_XMLHttpRequest_url	     $uri;	proxy_pass	   http://$realHost;	 	break; 				  }		# 初次请求页面documentif ( $arg_proxy ){					  add_header   	Set-Cookie 	 'cookieHost=$backend_host;path=/;';		add_header 	 whl_arg_proxy	     $arg_proxy;	proxy_pass	   	$arg_proxy;	 break; 					 }proxy_pass	   http://$realHost;	 	 				 }		 #		 	# location   ~* \.(js|css|gif|jpg|jpeg|jfif|png|bmp|swf|ico|woff2|woff|ttf|mp4|flv)$#			 location   ~* \.(js|css|swf|woff2|woff|ttf|mp4|flv)$#		 	 {		 #		 		proxy_next_upstream 	http_502 	http_504 	error 	timeout 	invalid_header;#		 		proxy_set_header		whl_host	 				$backend_host;#		 		proxy_set_header		whl_url	 	 				$arg_proxy;#		 		proxy_set_header  	Host  						$backend_host;#		 		proxy_set_header 	X-Forwarded-For 		$remote_addr;#				proxy_set_header     X-Real-IP   	 		 	$remote_addr;#		 		#		 		  #自定义响应头				#		 			add_header 	whl_host 	 					$backend_host; #		 			add_header 	whl_url 	 					$arg_proxy; #		 			add_header 	whl_req_url					$query_string; #		 			add_header 	whl_http_referer			$http_referer; #		 			add_header 	whl_real_host					$realHost; 		 		 	 #		 		 	add_header 	whl_get_cookieHost			$cookie_cookieHost; #		 		 	add_header 	whl_http_Accept			$http_Accept; #					add_header   	whl_Sec_Fetch_Dest 	 $http_Sec_Fetch_Dest;			    #		 			#		 	     proxy_pass			 http://$realHost;  #有效#					  #		 	  }	 }
http://www.lryc.cn/news/95958.html

相关文章:

  • TCP协议(收集和记录)
  • 【Kafka】自动提交偏移量和手动提交偏移量的区别
  • 缠论线段的划分
  • 【Linux】Ubuntu基本使用与配置, 以及常见问题汇总(一)
  • 【UE5 多人联机教程】02-开始游戏菜单控件
  • 设计模式-工厂方法模式
  • 【Hammerstein模型的级联】快速估计构成一连串哈默斯坦模型的结构元素研究(Matlab代码实现)
  • 「C 语言」extern关键字
  • oracle单个用户最大连接数限制
  • 计算机网络最基础知识介绍
  • 接口测试进阶之数据模板
  • Java中使用MySQL详解
  • Docker安装Elasticsearch相关软件安装
  • Ubuntu的安装与部分配置
  • 为什么 Splashtop 是更好用的 iOS 远程桌面应用
  • [SQL挖掘机] - 字符串函数 - lower
  • 什么是Koala?
  • 阿里巴巴前端开发规范
  • opencv-19 图像色彩空间转换函数cv2.cvtColor()
  • SpringCloudAlibaba微服务实战系列(二)Nacos配置中心
  • 【Kafka源码走读】Admin接口的客户端与服务端的连接流程
  • Windows API遍历桌面上所有文件
  • 【MySQL】基本查询(插入查询结果、聚合函数、分组查询)
  • 【Go语言】Golang保姆级入门教程 Go初学者介绍chapter1
  • mysql 自增长键值增量设置
  • 【pytho】request五种种请求处理为空和非空处理以及上传excel,上传图片处理
  • 【全面解析】Windows 如何使用 SSH 密钥远程连接 Linux 服务器
  • 解锁新技能《基于logback的纯java版本SDK实现》
  • 你需要知道的云原生架构体系内容
  • 安全渗透--正则表达式