nginx rewrite url重写, if实现负载均衡 ,nginx反向代理配置

 

  rewrite   (url 重写)

语法:rewrite regex replacement flag;,如:

 

将url 开头为/imgs 下所有的以.jpg结尾的文件路径全部转成 /images下所有.jpg结尾的文件

rewrite ^/imgs/(.*\.jpg)$ /images/$1 break;

 

 

在nginx网页访问目录下创建一个目录,在里面放入一张图片

[root@localhost imgs]# pwd
/usr/local/nginx/html/imgs
[root@localhost imgs]# ls
dog.jpg

 

在网页*问

nginx   rewrite url重写, if实现负载均衡 ,nginx反向代理配置

 

 

 

 

 

将原图片存放位置修改名字

[root@localhost html]# mv imgs images
[root@localhost html]# ls
50x.html  images  index.html

 

 

nginx   rewrite url重写, if实现负载均衡 ,nginx反向代理配置

 

 

 

 

将rewrite机制写入配置文件中

[root@localhost html]# vim /usr/local/nginx/conf/nginx.conf
        location /imgs {
            rewrite ^/imgs/(.*\.jpg)$ /images/$1 break;
        }
        

//测试一下配置文件语法有无问题
[root@localhost html]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
// 重载配置文件
[root@localhost html]# nginx -s reload

 

我并没有改变网页访问的路径,但是他还是能访问到图片

 

nginx   rewrite url重写, if实现负载均衡 ,nginx反向代理配置

 

 

 

 

还有一种写法

rewrite ^/images/(.*\.jpg)$   www.baidu.com break;

 

[root@localhost html]# vim /usr/local/nginx/conf/nginx.conf
        location /imgs {
            rewrite ^/imgs/(.*\.jpg)$ http://www.baidu.com break;
        }

[root@localhost html]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost html]# nginx -s reload

 

 

 

他直接就跳转到了百度

nginx   rewrite url重写, if实现负载均衡 ,nginx反向代理配置

 

 

 

 

 

 

 

 

 

常见的flag

 

flag 作用
last 基本上都用这个flag,表示当前的匹配结束,继续下一个匹配,最多匹配10个到20个
一旦此rewrite规则重写完成后,就不再被后面其它的rewrite规则进行处理
而是由UserAgent重新对重写后的URL再一次发起请求,并从头开始执行类似的过程
break 中止Rewrite,不再继续匹配
一旦此rewrite规则重写完成后,由UserAgent对新的URL重新发起请求,
且不再会被当前location内的任何rewrite规则所检查
redirect 以临时重定向的HTTP状态302返回新的URL
permanent 以永久重定向的HTTP状态301返回新的URL

 

nginx rewrite url重写, if实现负载均衡 ,nginx反向代理配置

上一篇:web服务器之Apache语法与使用


下一篇:执行npx webpack-dev-server报错: Cannot find module 'webpack-cli/bin/config-yargs'