本文主要是介绍Nginx配置location+rewrite实现隐性域名配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《Nginx配置location+rewrite实现隐性域名配置》本文主要介绍了Nginx配置location+rewrite实现隐性域名配置,包括基于根目录、条件和反向代理+rewrite配置的隐性...
隐性域名:访问www.a.com 则跳转到www.b.com的页面,但是地址栏还是显示www.a.com
1、配置基于根目录的隐性域名(就是nginx反向代理)
访问http://wwwChina编程.bbb.org:8002, 跳转http://www.accp.org:8001的页面,地址栏url保持不变
server { listen 8002; server_name www.bbb.org; location / { proxy_pass http://www.accp.org:8001; # 反向代理到这个url,该域名必须能解析 } }
2、配置基于条件的隐性域名
当访问 http://www.bbb.org:8002/高圆圆.jpg 时 跳转到http://www.accp.org:8001/高圆圆.jpg页面,地址栏url保持不变,注意www.accp.org下面必须也有高圆圆.jpg才能访问到数据
server { listen 8002; server_name www.bbb.org; location ~.*\.(jpg|png)$ { proxy_pass http://www.accp.org:8001; #rewrite ^/pic/(.*) /(.*)/$1 break; #rewrite ^/(.*) .*/$1 break; } }
2.1、基于条件的隐性域名
当访问http://www.bbb.org:8002/js/高圆圆.jpg时,跳转到http://www.accp.org:8001/js/高圆圆.jpg页面
注意:www.bbb.org和www.accp.org必须都有/js/高圆圆.jpg才能访问到数据
server { listen 8002; server_name www.bbb.org; location /js/ { proxy_pass http://www.accp.org:8001; } }
2.2 、基于条件的隐性域名
当访问httpChina编程://www.bbb.org:8002/(任意目录)/(任意内容),都跳转到http://www.accp.org:8001/js/(任意内容)
比如访问http://www.bbb.org:8002/sfsfsfs/高圆圆.jpg,跳转到 http://www.accp/org:8001/js/高圆圆.jpg
server { listen 8002; server_name www.bbb.org; location / { proxy_pass http://www.accp.org:8001; rewrite ^/.*/(.*) /js/android$1 break; # 前提是有这个文件 http://www.accp.org:8001/js/高圆圆.jpg } }
3、配置基于条件的隐性域名(反向代理+rewrite配置)
当访问 http://www.bbb.org:8002/高圆圆.jpg 时 , 跳转到 http://www.accp.org:8001/js/高圆圆.jpg 页面,地址栏保持不变
rewrite ^/(.) :表示重写匹配 http://www.bbb.org:8002/下面的任意内容,(.)表示任意内容
/js/$1 break :表示重写为 http://www.accp.org:8001/js/(.), $1与(.)相对应
server { listen 8002; server_name www.bbb.org; location ~.*\.(jpg|png|gif)$ { # 匹配到以.jpg|png|gif结尾的请求url时 proxy_pass http://www.accp.org:8001; # 反向代理到这个地址 rewrite ^/(.*) /js/$1 break; # 并且将请求的url主体重写为/js/$1 } }
4、基于条件的隐性域名2(反向代理+rewrite)
本实验在MACbook m1 deskDesktop下完成
注意:/aws/index.html 在2个网站中必须真实存在
(1) 当访问http://www.wen.com/aws/index.html时,跳转到http://www.wen.com/index.html server { listen 80; server_name www.wen.com; location /aws/ { rewrite /aws/(.*)$ /$1 break; # 匹配到url中的/aws/编程[任意],跳转到网站根目录下的[任意] $1=第一个(.*) } } (2) 当访问http://www.wen.com/aws/index.html时,跳转到http://www.qiang.com/index.html server { listen 80; server_name www.wen.com; location /aws/ { rewrite /aws/(.*)$ /$1 break; # break不再匹配下面的rewrite规则 proxy_pass http://www.qiang.com; # 这俩上下换个顺序效果也一样 } }
到此这篇关于Nginx配置location+rewrite实现隐性域名配置的文章就介绍到这了,更多相关Nginx隐性域名配置内容请搜索编程China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持China编程(www.chinasem.cn)!
这篇关于Nginx配置location+rewrite实现隐性域名配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!