Nginx的location作用

location

Nginx locaiton 作⽤是根据⽤户请求的 URI 不同,来执行不同的应用。针对用户请求的网站URL 进行匹配,匹配成功后进行对应的操作。
location [ = | ~| ~* | ^~ ] url {
 #指定对应的动作
}
正则表达式解释
匹配符
匹配规则 
优先级
=
精确匹配
1
^~
以某个字符串开头,不做正则
2
~*        
正则匹配
3
/blog/
匹配常规字符串,有正则就优先正则
4
/
通⽤匹配,不符合其他location的默认匹配
5

实战 

修改 nginx.conf

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    # gzip on;
	


	server {
		 listen 83;
		 server_name _;
		 
		 #最低级匹配,不符合其他locaiton就来这
		 location / {
		 return 401;
		}
		 #优先级最⾼
		 location = / {
		 return 402;
		}
		 #以/blog/开头的url,来这⾥,如符合其他locaiton,则以其他优先
		 location /blog/ {
		 return 403;
		}
		 #匹配任何以/img/开头的请求,不匹配正则
		 location ^~ /img/ {
		 return 404;
		}

	}
}

访问localhost:83/

Nginx的location作用_第1张图片

访问localhost:83/blog/

Nginx的location作用_第2张图片 

访问localhost:83/img/

Nginx的location作用_第3张图片 

rewrire

Nginx rewrire技术主要是实现URL地址重写,且⽀持正则表达式的规则。 通过rewrite可以规范URL、根据变量进⾏URL跳转等,常⽤的功能如

  1. 对于爬⾍的封禁,让其跳转无用页面
  2. 动态的URL伪装成HTMl⻚⾯,便于搜索引擎的抓取
  3. 旧域名、旧⽬录的更新,需要跳转到新的URL地址

语法

rewrite ^/(.*) http://www.baidu.com/$1 permanent;
rewrite是指令,开启⼀个跳转规则
正则是 ^/(.*) 表示匹配所有,匹配成功后跳转到后⾯的url地址
$1 表示取出前⾯正则括号⾥的内容
permanent表示 301 重定向的标记

 参数解析

标记
解释
last
规则匹配完成后,继续向下匹配新的 Locaiton
break
本条规则完成匹配后,⽴即停⽌
redirect
返回 302 临时重定向,浏览器地址栏显示跳转后的 URL
permanent
返回 301 永久重定向,浏览器地址显示跳转后的 URL
  • lastbreak⽤于实现URL重写,浏览器地址栏不发⽣变化
  • redirectpermanent⽤于实现URL跳转,浏览器地址栏跳转新的URL

 访问localhost:90/

Nginx的location作用_第4张图片

跳转百度

Nginx的location作用_第5张图片

你可能感兴趣的:(nginx,nginx,运维)