7. Nginx基础模块-虚拟站点+Location

1 Nginx虚拟站点

环境:在一台服务器上实现多个站点

1.1 实现虚拟主机的方式

  • 基于IP:不同的IP
  • 基于端口:相同IP,不同的端口
  • 基于域名:相同的IP,相同的端口,不同的域名
基于域名:相同的IP,相同的端口,不同的域名
charset utf-8;
server {
        listen 80;
        server_name baidu.yan.com;					//baidu是主机域
        location / {
                root /html/baidu;
                index index.html;
                access_log /var/log/nginx/baidu.access.log main;
        }
        location /baidu_status {
                stub_status;
        }
}
server {
        listen 80;
        server_name jingdong.yan.com;			//京东是主机域
        location / {
                root /html/jingdong;
                index index.html;
                access_log /var/log/nginx/jingdong.access.log main;
        }
}

在这里插入图片描述
在这里插入图片描述

2 Nginx Location

使用Nginx Location可以控制访问网站路径

2.1 Location语法优先级排列

匹配符匹配规则优先级
=精确匹配1
^~以某个字符串开头2
~区分大小写的正则匹配 **3
~*不区分大小写的正则匹配 **4
~!区分大小写不匹配的正则5
!~*不区分大小写不匹配的正则6
/通用匹配,任何请求都会匹配到 **7

2.2 配置网站验证location优先级

server {
        listen 88;
        server_name localhost;
        location / {
                default_type /test/html;
                index index.html;
                return 200  "location /";
                }
    	location = / {
           default_type /test/html;
            index index.html;
            return 200 "location = /";
            }
    	location ~ / {
            default_type /test/html;
            return 200 "location ~ /";
            }
    }

2.3 Location 应用场景

#通用匹配,任何请求都会匹配到
location 	/	{
	}

#严格区分大小写,匹配以.php结尾的都走这个location
location	~	\ .php$  {
		fastcgi_pass http://127.0.0.1:9000
	}

#严格区分大小写,匹配.jsp结尾的都走location
location ~ \ .jsp$ {
	porxy_pass http://127.0.0.1:8080;
}

#不区分大小写匹配,只要用户访问.jpg.gif.png,js,css都走这条location
location	~* 	.*\ .(jgp|gif|png|js|css)$	{
		rewrite	(.*) http://cdn.odlboyedu.com$request_uri;
}s

#不区分大小写匹配
location ~* "\ .(sql|bak|tgz|tar.gz)$" {
	default_type text/html;
	return 403 "启用访问控制成功"
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值