Nginx的进阶二
nginx的配置跨域问题
为什么会出现跨域问题
出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)
什么是跨域
当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域
nginx解决跨域问题
#设置需要跨域的指定文件
指定请求路径带上请求头
location /test/ {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET,POST';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
#设置路径文件路径
alias /data/web/res/;
}
#设置允许全局跨域
server {
....
#还可以添加是否携带cookie
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET,POST';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
}
配置静态资源防盗链
在nginx中我们可以配置防盗链,防止别人引用我们的资源服务
#对指定server块的全局设置
#对站点验证,配置静态资源防盗链
valid_referers ip或者域名 如:*.xioahu.com; //表示xiaohu.com的一级或者二级进来都可以引用,但是别的站点引用资源服务就会进入下面的判定框404
#非法引入会进入下方判断
if ($invalid_referer){
return 404;
}
#可以在指定的路径设置
location ~ .*\.(jpg|gif|png)$ {
valid_referers none blocked 49.233.145.78; # 允许跳转的ip
if ($invalid_referer) {
return 403;
}
root /opt/app/code/images;
}
nginx开启gzip压缩
http {
# 开启gzip
gzip on;
# 启用gzip压缩的最小文件;小于设置值的文件将不会被压缩
gzip_min_length 1k;
# gzip 压缩级别 1-10
#级别越大压缩越多,cpu使用比也多
gzip_comp_level 2;
# 进行压缩的文件类型。
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
# 是否在http header中添加Vary: Accept-Encoding,建议开启 下图可以看到
gzip_vary on;
}
[图片上传失败...(image-6e4f97-1605751537059)]
网友评论