个人笔记nginx:rewrite地址跳转

一、rewrite基础

  • 地址跳转

      地址重写		www.360buy.com——>jd.com
    
  • rewrite使用场景、实现原理

    1. 地址跳转:www.xuliangwei.com/class --> class.xuliangwei.com
    2. 协议跳转: http升级至https。 ( Rewrite方式来实现。 )
    3. URL静态化,将动态URL地址显示为静态URL地址的一种技术。
  • Rewrite URI重写配置语法

      set			设定变量
      if			条件判断
      return		返回数据
      rewrite
    

二、rewrite用例

需求1: 将用户请求url.oldxu.com.zh跳转至url.oldxu.com/zh
需求2: 将用户请求url.oldxu.com.jp跳转至url.oldxu.com/jp

[root@web01 ~]# cat /etc/nginx/conf.d/url.oldxu.com.conf
server {
   
	listen 80;
	server_name url.oldxu.com.zh url.oldxu.com.jp;

	location / {
   
		#判断用户请求的域名是zh还是jp
		if ( $http_host ~* "zh" ) {
   
			set $language zh;
		}

		if ( $http_host ~* "jp" ) {
   
			set $language jp;
		}

		#配置rewrite跳转规则
		rewrite ^/$ http://url.oldxu.com/$language/ permanent;
	}
}

server {
   
	listen 80;
	server_name url.oldxu.com;
	root /opt;

	location / {
   
		index index.html;
	}
}
[root@web01 ~]# mkdir /opt/zh -p
[root@web01 ~]# mkdir /opt/jp -p
[root@web01 ~]# echo "zh.." > /opt/zh/index.html
[root@web01 ~]# echo "jp.." > /opt/jp/index.html
[root@web01 ~]# nginx -t
[root@web01 ~]# systemctl reload nginx

需求3: 过滤 Nginx 请求中包含 a1=3526 的http请求到 10.16.3.5 的 8080 端口处理。

server {
   
        listen 80;
        server_name url.oldxu.com;
        root /opt;

        location / {
   
                index index.html;

                #如果用户请求的uri中a1=3256,我们通过反向代理代理到10.16.3.5:8080端口
                if ( $request_uri ~* 'a1=3256' ) {
   
                        #proxy_pass http://10.16.3.5:8080;		#这个地址是不存在的
                        return 200 'ok....!';				#所以使用return来替代模拟 
                }
        }
}
测试的curl命令: curl -L -HHost:url.oldxu.com http://10.0.0.7?a1=3256
	-L 跟随跳转
	-H 指定Host头,具体要请求的域名是

三、return:主要用来返回数据|返回字符串|返回url地址。

  1. 如果用户使用 IE 访问 url.oldxu.com 则返回字符串 ( 请更换您的浏览器。 ) chrome
server {
   
	listen 80;
	server_name url.oldxu.com;
	root /opt;
	charset gbk,utf-8;
	location / 
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值