需求:
如果本地没有这个url就rewrite到另外服务器上去请求;
实现:
server {
listen 8080;
if (!-e $request_filename ){
rewrite ^/(.*)$ http://192.168.2.42/$1 permanent;
}
}
说明:
当本地web上没有这个资源的时候,就跳转到192.168.2.42服务器上去请求;
nginx的rewrite指令中可以通过设置该条rewrite的flag来对该规则进行说明。一般可以设置的flag有:last,break,redirect,permanent四种。
redirect说明,这条规则是一个临时的跳转,并且此时如果观察http请求的话,http的响应状态码为302.
permanent说明,这条规则是一个永久性的跳转,并且此时,http的响应状态码为301.
那么什么是永久性跳转,什么是临时跳转,这有什么作用呢?下面我们举例说明:
如果有一个url,/a。
如果配置成
1
rewrite "/a" "http://test.html" redirect;
则说明这个跳转是一个临时跳转,此时如果有网络爬虫爬这个链接时,是不会更新自己的url数据库的。
但是如果配置成permanet,则爬虫会更新自己的url数据库,把/a更新为http://test.html。
这也就是临时跳转和永久跳转的区别。
时间: 2024-10-11 23:11:26