Nginx入门笔记(静态资源提供服务)

1 为静态资源提供服务

为了提高可读性,因此就构建了新的 server 配置文件如下,需要理清的就是 rootalias 的区别:

  • root:使用 root,访问文件根目录的绝对路径就是 root 指定的值加上 location 指定的值
  • alias:使用 alias,相当于 locationalias 做一个自定义的别名,访问文件根目录的绝对路径就是 alias 指定的路径,同时 alias 如果后面使用了 / 结束,那么 location 也需要使用 / 结尾,否则会找不到文件
server {
    listen 8080;
    server_name localhost;

    # 真实的路径是root指定的值加上location指定的值
    # 网页文件
    location / {
        root /home/frontEnd;
    }

    # 图片等静态资源文件
    # 如果这么配置,那么访问 localhost:8080/static/1.jpg时
    # 它访问到的文件就应该是 /workspaces/foodie/static/1.jpg
    #location /static {
    #   root /workspaces/foodie;
    #}


    # 真实路径都是 alias 指定的路径
    # 如果这么配置,那么访问 localhost:8080/static/1.jpg时
    # 它访问到的文件就应该是 /workspaces/foodie/1.jpg
    # alias 如果后面使用了 “/” 结束,那么 location 也需要使用 “/” 结尾,否则会找不到文件
    location /static {
        # 别名
        alias /workspaces/foodie;
    }
}

1.1 location 的匹配规则

  • 空格:默认匹配,普通匹配
location / {
	root /home;
}
  • =:精确匹配,要求请求字符串与其严格匹配,成功则立即处理,nginx停止搜索其他匹配。
location = /imooc/img/face1.png {
	root /home;
}
  • ^~:以某个字符路径开头,并要求一旦匹配到就会立即处理,不再去匹配其他的那些个正则 uri,一般用来匹配目录
location ^~ /ima {
	root /workspaces/foodie;
}
  • ~*:匹配正则表达式,不区分大小写
  • ~:匹配正则表达式,区分大小写
location ~ /faces {
	root /workspaces/foodie;
}

2 使用 Gzip 压缩提升请求效率

《Nginx入门笔记》 的核心配置文件里就已经提及过 Gzip,配置内容:

# 打开 gzip 压缩功能,目的:提高传输效率,节约带宽
gzip  on;

# 定义 限制最小压缩,小于1字节文件不会压缩
gzip_min_length 1;

# 定义压缩的级别(压缩比,文件越大,压缩越多,但cpu使用率会越多)
gzip_comp_level 3;

# 定义压缩文件的类型
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-h
ttpd-php image/jpeg image/gif image/png application/json;

3 在 Nginx 中解决跨域问题

比方说不同域的网站使用 ajax 发起 GET 请求获取由 Nginx 代理服务的静态资源,此时就会发生跨域问题。
此时需要进行以下配置,以下配置设置在 server 指令中:

#允许跨域请求的域,*代表所有
add_header 'Access-Control-Allow-Origin' *;
#允许带上cookie请求
add_header 'Access-Control-Allow-Credentials' 'true';
#允许请求的方法,比如 GET/POST/PUT/DELETE
add_header 'Access-Control-Allow-Methods' *;
#允许请求的header
add_header 'Access-Control-Allow-Headers' *;

3.1 DNS 解析域名

在这里插入图片描述
在计算机的整个网络里面,网络通信都是基于 tcp/ip 协议的,它是不会识别域名的,那么我们是怎么通过域名打开网站呢,这是因为浏览器访问域名时,它会经过 DNS(Domain Name System) 解析域名获取一个 ip,从而就会访问到解析后的 ip,获取对应的资源。
在本地电脑中可以修改 host 文件,添加新的域名绑定关系,模拟本地域名解析访问,因为 host 文件解析优先级会比 DNS 高,也可以下载 SwitchHosts 软件进行修改,如:

192.168.44 www.foodie.com

4 配置静态资源防盗链

比方说不希望不同域的网站获取静态资源,如使用 <img> 标签获取图片,也可以使用 Nginx 进行配置,放置到 server 指令块中,需要在 location 前声明:

#对源站点验证
valid_referers *.foodie.com; 
#非法引入会进入下方判断
if ($invalid_referer) 
{
	return 404; 
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值